JP6463814B2 - ブートのハードウェア周波数を動的に最適化するシステム及び方法 - Google Patents

ブートのハードウェア周波数を動的に最適化するシステム及び方法 Download PDF

Info

Publication number
JP6463814B2
JP6463814B2 JP2017190494A JP2017190494A JP6463814B2 JP 6463814 B2 JP6463814 B2 JP 6463814B2 JP 2017190494 A JP2017190494 A JP 2017190494A JP 2017190494 A JP2017190494 A JP 2017190494A JP 6463814 B2 JP6463814 B2 JP 6463814B2
Authority
JP
Japan
Prior art keywords
operating frequency
frequency level
server system
sensor data
level
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
JP2017190494A
Other languages
English (en)
Other versions
JP2018147461A (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.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
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 Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2018147461A publication Critical patent/JP2018147461A/ja
Application granted granted Critical
Publication of JP6463814B2 publication Critical patent/JP6463814B2/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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/4406Loading of operating system
    • 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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、コンピューティングシステムにおけるシステムブートに関するものである。
現在のサーバファーム又はデータセンタは、通常、様々なアプリケーションサービスに必要な演算及びストレージを処理する大量のサーバシステムを採用している。各サーバは、正常な操作をサポートするために、基本入出力システム(BIOS)を必要とする。BIOSは、サーバシステムのコンピューティングコンポーネントの操作を保証するファームウェアである。BIOSは、サーバがブートするときに実行されるファームウェアを、BIOSに指定された構成のセットとともに記憶する。BIOSは、通常、サーバシステム内のハードウェアを識別、初期化及びテストする。
データセンタのサーバシステムは、サーバシステムが適切に機能するのを保証するために、時々リブートする必要がある。但し、サーバシステムのブートには、最小限の時間がかかる。データセンタには大量のサーバシステムが存在するため、個々のサーバシステムのブート時間は、データセンタに対して大量のダウンタイムを発生させるおそれがある。
上述した問題を解決するため、本発明は、サーバシステムの動作周波数を動的に最適化して、システムのブート時間を最小化するシステム及び方法を提供することを目的とする。システムは、周波数調整モジュールと、少なくとも1つの内部センサと、少なくとも1つの外部センサと、1つ以上の冷却コンポーネントと、プロセッサと、メモリと、基本入出力システム(BIOS)と、を有する。周波数調整モジュールは、少なくとも1つの内部センサ及び/又は少なくとも1つの外部センサから、センサデータを収集する。周波数調整モジュールは、センサデータ及び熱周波数レベルテーブルに基づいて、サーバシステムの適切な動作周波数レベルを決定して、サーバシステムのブート時間を最小化する。
本発明の一実施形態によれば、サーバシステムの動作周波数を動的に最適化するコンピュータ実施方法は、サーバシステムの周波数調整モジュールにて、サーバシステムの1つ以上のセンサからセンサデータを受信する工程と、少なくともセンサデータ及び熱周波数レベルテーブルに基づいて、適切な動作周波数レベルを決定する工程と、適切な動作周波数レベルがサーバシステムの以前の動作周波数と異なる場合に、適切な動作周波数レベルをサーバシステムの第1動作周波数レベルとして設定する工程と、セルフテストカウントを所定値に設定する工程と、セルフテストがOKでない場合に、セルフテストカウントがゼロであるか否かを判断する工程と、セルフテストカウントがゼロでない場合に、第1動作周波数レベルを1レベル下げて第2動作周波数レベルにし、セルフテストカウントを1レベル下げる工程と、を有する。
セルフテストカウントがゼロである場合に、周波数調整モジュールは、サーバシステムが熱制御範囲外であることを示すエラーメッセージを、サーバシステムのコントローラに送信させてもよい。セルフテストがOKである場合に、周波数調整モジュールは、セルフテストカウントをゼロに設定し、所定の待ち時間後に追加のセンサデータを受信してもよい。適切な動作周波数レベルがサーバシステムの以前の動作周波数と同じである場合に、周波数調整モジュールは、所定の待ち時間後に追加のセンサデータを受信してもよい。
いくつかの構成では、適切な動作周波数レベルを決定する工程は、少なくともセンサデータ及び熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定する工程と、動作周波数レベルの範囲内の最大動作周波数レベルを決定する工程と、最大動作周波数レベルをサーバシステムの適切な動作周波数レベルとして選択する工程と、を有する。いくつかの別の例では、適切な動作周波数レベルを決定する工程は、少なくともセンサデータ及び熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定する工程と、動作周波数レベルの範囲内で中間動作周波数レベルを決定する工程と、中間動作周波数レベルをサーバシステムの適切な動作周波数レベルとして選択する工程と、を有する。
いくつかの構成では、少なくとも1つの内部センサは、少なくとも1つの熱センサを有する。周波数調整モジュールにより収集されるセンサデータは、プロセッサ温度と、チップセット温度と、サーバシステムの環境温度と、のうち少なくとも1つを有する。
いくつかの構成では、熱周波数レベルテーブルは、複数のテーブルエントリを有する。複数のテーブルエントリの各々は、特定のセンサデータ(例えば、温度の特定範囲)と、対応するサーバシステムが動作可能な動作周波数レベルの範囲と、を有する。また、熱周波数レベルテーブルは、異常なセンサデータのエントリを有してもよい。例えば、1つのエントリは、閾値低温値よりも低いシステム温度範囲と、サーバシステムが動作可能な対応する動作周波数レベルと、潜在的なダメージをシステムのコンポーネントに示す警告メッセージを送信するための最小の閾値動作周波数レベルと、を有してもよい。別のエントリは、閾値高温値よりも高いシステム温度範囲と、サーバシステムが動作可能な対応する動作周波数レベルと、潜在的なダメージをシステムのコンポーネントに示す警告メッセージを送信するための最大の閾値動作周波数レベルと、を有してもよい。
本発明の別の実施形態によれば、命令を記憶する非一時的なコンピュータ可読記憶媒体が提供される。命令がプロセッサにより実行されると、サーバシステムの周波数調整モジュールにて、サーバシステムの1つ以上のセンサーからセンサデータを受信することと、少なくともセンサデータ及び熱周波数レベルテーブルに基づいて、適切な動作周波数レベルを決定することと、適切な動作周波数レベルがサーバシステムの以前の動作周波数と異なる場合に、適切な動作周波数レベルをサーバシステムの第1動作周波数レベルとして設定することと、セルフテストカウントを所定値に設定することと、セルフテストがOKでない場合に、セルフテストカウントがゼロであるか否かを判断することと、セルフテストカウントがゼロでない場合に、第1動作周波数レベルを1レベル下げて第2動作周波数レベルにすることと、セルフテストカウントを1レベル下げることと、をプロセッサに実行させる。
本発明のさらなる特徴及び利点は、以下の説明に記載され、部分的に、この説明から明らかになるか、又は、開示された原理の実施により理解できる。本発明の特徴及び利点は、添付の特許請求の範囲に特に示された手段及びその組み合わせによって実現及び取得することができる。本発明の特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲からより完全に明らかになるか、本発明に記載された原理を実施することによって理解することができる。
本発明によれば、サーバシステムの動作周波数を動的に最適化して、システムのブート時間を最小化することができる。
本発明の上述した利点及び特徴、並びに、他の利点及び特徴を得る方法を説明するために、簡単に説明した原理のより具体的な説明は、図面で示された具体的な実施形態によって更に具体的に説明される。これらの図面は、本発明の一例を示すものであり、本発明を限定するものではないことを理解すべきである。本発明の原理は、図面の描写及び付加された特徴と詳細の解釈によって説明される。
本発明の一実施形態による、動作周波数を動的に最適化して、ブート時間を最小化するシステムのブロック図である。 本発明の別の実施形態による、動作周波数を動的に最適化して、ブート時間を最小化するシステムのブロック図である。 本発明の一実施形態による、動作周波数を動的に最適化して、ブート時間を最小化する方法を示す図である。 本発明の様々な実施形態によるコンピューティングデバイスを示す図である。 本発明の様々な実施形態によるシステムを示す図である。 本発明の様々な実施形態によるシステムを示す図である。
本発明の様々な実施形態は、サーバシステムの動作周波数を動的に最適化して、システムのブート時間を最小化するシステム及び方法を提供する。例示的なシステムは、周波数調整モジュールと、少なくとも1つの内部センサと、少なくとも1つの外部センサと、1つ以上の冷却コンポーネントと、プロセッサと、メモリと、基本入出力システム(BIOS)と、を有する。周波数調整モジュールは、少なくとも1つの内部センサ及び/又は少なくとも1つの外部センサからセンサデータを収集することができる。周波数調整モジュールは、センサデータ及び熱周波数レベルテーブルに基づいて、サーバシステムの適切な動作周波数レベルを決定して、サーバシステムのブート時間を最小化することができる。
図1Aは、本発明の一実施形態による、動作周波数を動的に最適化して、ブート時間を最小化する例示的なシステム100Aのブロック図である。この実施形態において、システム100Aは、複数のコンポーネントを有する。例えば、システム100Aは、周波数調整モジュール101と、プロセッサ102と、メモリ103と、BIOS104と、少なくとも1つの内部センサ106と、少なくとも1つの外部センサ108と、1つ以上の冷却コンポーネント107(例えば、冷却ファン)と、システム100Aのコンポーネントを接続するバス105と、を有する。
システム100Aにおいて、BIOS104は、システム100Aの様々なコンポーネントを初期化及び識別するように構成された任意のプログラム命令又はファームウェアであってもよい。BIOS104は、システム100Aのハードウェアコンポーネントの初期化及びテストを担当し、且つ、ハードウェアコンポーネントに抽象化レイヤを提供することができ、これにより、アプリケーション及びオペレーティングシステムが、周辺機器(例えば、キーボード、ディスプレイ及び他の入出力装置等)と相互作用する一貫した方法を提供する。
いくつかの構成において、BIOS104は、システム100A上のオペレーティングシステム(OS)(例えば、Microsoft Windows(登録商標) OS、Linux(登録商標) OS又は任意のOS)を起動する前に、システムチェックを行う。システムチェックは、対応するサーバシステムの初期化中に実行される診断システム試験(diagnostic system examination)である。システムチェックの例には、パワーオンセルフテスト(POST)が含まれる。BIOS104は、POSTの主要な機能を実行することができ、特定の周辺機器(例えば、ビデオ及びスモールコンピュータシステムインタフェース(SCSI)の初期化)を初期化するように設計された他のプログラムへの負荷を低減することができる。POSTの主要な機能には、プロセッサレジスタ(例えば、プロセッサ102のレジスタ)とBIOSコードとの整合性を検証することと、基本コンポーネントをチェックすることと、システムメインメモリ(例えば、メモリ103)を検査することと、他の特殊なBIOS拡張機能に制御を渡すことと、が含まれてもよい。いくつかの構成において、BIOSは、さらに、全てのシステムバス(例えば、バス105)及び装置の発見、初期化、分類化と、システムの構成を更新するためのユーザインタフェースの提供と、オペレーティングシステムにより要求されるシステム環境の構築と、を含む追加のPOST機能を処理してもよい。
かなりの頻度でBIOS104を更新する必要がある。例えば、BIOS104は、BIOS製造者によってリリースされた新たなBIOS機能を利用して、新たに追加されたハードウェアで動作するように、又は、BIOS104で検出されたバグを解決するように、更新され得る。BIOS104が更新されると、システム100Aは、システム100Aのコンポーネントが適切に機能するのを保証するために、リブートしなければならない。
システム100Aにおいて、周波数調整モジュール101は、システム100Aの動作周波数を動的に決定して、リブート時間を最小化することができる。周波数調整モジュール101は、内部センサ106(例えば、プロセッサ102、メモリ103、又は、システム100A内の熱を放散する他のチップセットコンポーネントのための温度センサ)、及び/又は、外部センサ108(例えば、周囲温度センサ)からセンサデータを収集する。その後、周波数調整モジュール101は、センサデータ(例えば、チップセットの温度)及び熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定し、決定した範囲の動作周波数レベルから適切な動作周波数レベルを選択する。
以下の表1に示すように、熱周波数レベルテーブルは、複数のテーブルエントリを有することができる。複数のテーブルエントリの各々は、システム100Aが動作可能な特定の温度範囲及び動作周波数レベルの範囲を有する。熱周波数レベルテーブルは、さらに、異常なセンサ温度のエントリを有する。例えば、1つのエントリは、閾値低温値−15℃未満のシステム温度範囲と、サーバシステムが動作可能な対応する動作周波数レベル(例えば、レベル2)と、最小閾値動作周波数レベル(例えば、レベル3)と、を有し、システム100Aが、最小閾値動作周波数レベル、又は、より低い動作周波数レベルで動作する場合に、潜在的なダメージをシステムのコンポーネントに示す警告メッセージを送信する。別のエントリは、閾値高温値90℃よりも高いシステム温度範囲と、サーバシステムが動作可能な対応する動作周波数レベル(例えば、レベル6、7、8及び9)と、最大閾値動作周波数レベル(例えば、レベル5)と、を有し、システム100Aが、最大閾値動作周波数レベル又はより高い動作周波数レベルで動作する場合に、潜在的なダメージをシステムのコンポーネントに示す警告メッセージを送信するように構成されている。
Figure 0006463814
いくつかの構成において、周波数調整モジュール101は、動作周波数レベルの範囲内で最大動作周波数レベルを決定し、最大動作周波数レベルをシステム100Aの適切な動作周波数レベルとして選択する。いくつかの別の例において、周波数調整モジュール101は、動作周波数レベルの範囲内で中間動作周波数レベルを決定し、中間動作周波数レベルをシステム100Aの適切な動作周波数レベルとして選択する。
本発明の技術では、テーブルを用いて説明しているが、均等物を用いることもできることに留意されたい。例えば、テーブルは、離散値を有するテーブルではなく、数学関数として具体化されてもよい。
システム100Aにおいて、ストレージデバイス109は、一定期間、プログラム命令又はデータを記憶するように構成された任意の記憶媒体であってもよい。いくつかの構成において、ストレージデバイスは、メインメモリ103に組み込まれてもよい。いくつかの構成において、ストレージデバイスは、独立したストレージデバイスであってもよい。ストレージデバイスは、フラッシュドライブ、ランダムアクセスメモリ(RAM)、不揮発性ランダムアクセスメモリ(NVRAM)、読み取り専用メモリ(ROM)、又は、電気的に消去可能なプログラマブルROM(EEPROM)であってもよい。ストレージデバイスは、例えばBIOSデータ等のシステム構成を記憶するように構成されている。
プロセッサ102は、特定の機能のプログラム命令を実行するように構成された中央処理装置(CPU)であってもよい。例えば、ブートプロセスの間、プロセッサ102は、ストレージデバイス109に記憶されたBIOSデータにアクセスし、BIOS104を実行して、システム100Aを初期化することができる。ブートプロセスの後に、プロセッサ102は、オペレーティングシステムを実行して、システム100Aの特定のタスクを実行及び管理することができる。
図1Aにおいて、システム100Aがオン又はリセットされると、プロセッサ102は、周波数調整モジュール101によって決定された適切な動作周波数レベル(operation frequent level)で動作する。プロセッサ102は、ストレージデバイス109に記憶された、更新されたBIOSセットアップオプションにアクセスし、更新されたBIOSセットアップオプションを実行して、システム100Aを初期化する。いくつかの構成において、プロセッサ102は、システムインタフェース(例えば、IC)を介して、更新されたBIOSセットアップオプションにアクセスする。ブートプロセスの後に、プロセッサ102は、オペレーティングシステムを実行して、システム100Aの特定のタスクを実行及び管理することができる。
図1Bは、本発明の別の実施形態による、動作周波数を動的に最適化して、ブート時間を最小化するシステム100Bのブロック図である。図1Bに示すように、サーバシステム100Bは、少なくとも1つのマイクロプロセッサ又はプロセッサ102と、1つ以上の冷却コンポーネント107と、メインメモリ(MEM)103と、AC電力113からAC電力を受信し、サーバシステム100Bの様々なコンポーネント(例えば、プロセッサ102)に電力を供給する少なくとも1つの電源ユニット(PSU)112と、ノースブリッジ(NB)ロジック114と、PCIeスロット160と、サウスブリッジ(SB)ロジック116と、ストレージデバイス109と、ISAスロット150と、PCIスロット170と、周波数調整モジュール101と、少なくとも1つの内部センサ106と、少なくとも1つの外部センサ108と、管理装置111と、を有する。内部センサ106は、内部温度(例えば、プロセッサ102、メモリ103、又は、システム100B内を散熱する他のチップセットコンポーネントの温度)を検出することができる。外部センサ108は、サーバシステム100Bの周囲温度を検出することができる。
周波数調整モジュール101は、内部センサ106及び/又は外部センサ108からセンサデータを収集することができる。周波数調整モジュール101は、センサデータ(例えば、チップセットの温度)及び熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定し、サーバシステム100Bの適切な動作周波数レベルを選択することができる。
電源がオンになった後、サーバシステム100Bは、メモリ103、コンピュータストレージデバイス109又は外部ストレージデバイスから1つ以上のソフトウェアアプリケーションをロードして、様々な動作を実行するように構成されている。ストレージデバイス109は、論理ブロックに構造化されている。論理ブロックは、サーバシステム100Bのオペレーティングシステム及びアプリケーションに利用可能であり、サーバシステム100Bがオフになってもサーバデータを保持するように構成されている。
メモリ103は、NBロジック114を介してプロセッサ102に接続され得る。メモリ103は、これに限定されないが、ダイナミックランダムアクセスメモリ(DRAM)、ダブルデータレートDRAM(DDR DRAM)、スタティックRAM(SRAM)、又は、他の適切なメモリを有する。メモリ103は、サーバシステム100BのBIOSデータを記憶するように構成されてもよい。いくつかの構成において、BIOSデータは、ストレージデバイス109に記憶されてもよい。
いくつかの構成において、プロセッサ102は、NBロジック114に接続されたCPUバスを介して互いに接続された1つ以上のマルチコアプロセッサであってもよい。いくつかの構成において、NBロジック114は、プロセッサ102に組み込まれてもよい。さらに、NBロジック114は、複数の周辺コンポーネント相互接続エキスプレス(PCIe)スロット160及びサウスブリッジ(SB)ロジック116(任意)に接続されてもよい。複数のPCIeスロット160は、例えばPCI Express x1、USB2.0、SMBus、SIMカード、別のPCIeレーン用の将来の拡張、1.5V及び3.3Vの電力、並びに、サーバシステム100Bのシャーシ上のLEDを診断するワイヤ等の接続及びバスに用いられる。
サーバーシステム100Bにおいて、NBロジック114及びSBロジック116は、周辺コンポーネント相互接続(PCI)バス115によって接続されている。PCIバス115は、プロセッサ102の標準化フォーマットの機能をサポートすることができ、この標準化フォーマットは、任意のプロセッサ102のネイティブバスから独立している。PCIバス115は、さらに、複数のPCIスロット160(例えば、PCIスロット161)に接続されてもよい。PCIバス115に接続された装置は、CPUバスに直接接続され、プロセッサ102のアドレス空間内のアドレスが割り当てられ、単一のバスクロックに同期されたバスコントローラ(図示省略)であってもよい。PCIカードは、これらに限定されないが、ネットワークインタフェースカード(NICs)、音声カード、TVチューナカード、ディスクコントローラ、ビデオカード、小型コンピュータシステムインタフェース(SCSI)アダプタ、及び、パーソナルコンピュータメモリカード国際協会(PCMCIA)カードを含む複数のPCIスロット170に用いられてもよい。
SBロジック116は、拡張バスを介して、PCIバス115を複数の拡張カード又はスロット150(例えば、ISAスロット151)に接続することができる。拡張バスは、SBロジック116と周辺装置その間の通信に用いられるバスであってもよく、このバスは、これらに限定されないが、業界標準アーキテクチャ(ISA)バス、PC/104バス、ローピンカウントバス、拡張ISA(EISA)バス、ユニバーサルシリアルバス(USB)、IDE(integrated drive electronics)バス、又は、周辺装置のデータ通信に用いることができる他の任意の適切なバスを含む。
この実施形態において、SBロジック116は、さらに、少なくとも1つのPSU121に接続された管理装置111に接続される。いくつかの実施形態において、管理装置111は、ベースボード管理コントローラ(BMC)、ラック管理コントローラ(RMC)、又は、他の任意の適切なタイプのシステムコントローラであってもよい。管理装置111は、少なくとも1つのPSU112の操作及び/又は他の適切な操作を制御するように構成されている。いくつかの実施形態において、管理装置111は、サーバシステム101Bの処理命令、並びに、コンポーネント及び/又は接続状態を監視するように構成されている。
図1A及び図1Bの例示的なシステム100A,100Bの例には、特定の構成要素のみが示されているが、データを処理又は記憶したり、信号を送受信したり、新鮮な空気を下流のコンポーネントに提供することができる様々なタイプの電子又はコンピューティングコンポーネントが、システム100A,100Bに含まれてもよい。さらに、例示的なシステム100A,100Bの電子又はコンピューティングコンポーネントは、各種タイプのアプリケーションを実行し、及び/又は、各種タイプのオペレーティングシステムを用いることができるように構成されてもよい。かかるオペレーティングシステムは、これらに限定されないが、Android(登録商標)、BSD(Berkeley Software Distribution)、iPhone(登録商標) OS(iOS)、Linux(登録商標)、OS X(登録商標)、Unix(登録商標)系のリアルタイムオペレーティングシステム(例えば、QNX等)、Microsoft Windows(登録商標)、Window Phone及びIBM z/OS(登録商標)を含む。
例示的なシステム100A,100Bの所望の実装に応じて、例えばTCP/IP、オープンシステム相互接続(OSI)、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UpnP)、ネットワークファイルシステム(NFS)、コモンインターネットファイルシステム(CIFS)、AppleTalk(登録商標)等を含むがこれらに限定されない各種ネットワーク及びメッセージプロトコルが用いられてもよい。当業者なら理解できるように、図1A〜図1Bに示される例示的なシステム100A,100Bは、説明のために用いられる。よって、ネットワークシステムは、必要に応じて多くのバリエーションを実装することができ、同時に、本発明の各種実施形態を用いたネットワークプラットフォームの構成を提供する。
図1A〜図1Bの構成において、例示的なシステム100A〜100Bは、特定のワイヤレスチャネルのコンピューティング範囲内の1つ以上の電子デバイスと通信するように動作可能な1つ以上のワイヤレスコンポーネントをさらに含むことができる。ワイヤレスチャネルは、例えば、ブルートゥース(登録商標)、セルラー、NFC又はWi-Fi(登録商標)チャネル等のように、装置が無線で通信できるようにするために用いられる任意の適切なチャネルであってよい。従来の技術のように、装置は、1つ以上の従来の有線通信接続を有し得ることを理解されたい。各種実施形態の範囲内で、各種の他のコンポーネント及び/又はその組み合わせが可能である。
上記の議論は、本発明の原理及び各種実施形態を説明することを意図している。上述した開示が十分に理解されると、各種の変形及び修正が明らかになるであろう。
図2は、本発明の一実施形態による、動作周波数を動的に最適化して、サーバシステムのブート時間を最小化する方法200を示す図である。注意すべきことは、理解できることは、方法200は、単に説明のために提示されており、本技術による他の方法では、同様の若しくは代替の順序で、又は、並行して実行される追加の工程、より少ない工程若しくは代替の工程を含むことができることを理解されたい。図1A及び図1Bに示されるように、方法200は、工程202において、サーバシステムの周波数調整モジュールにてサーバシステムの1つ以上のセンサからセンサデータを受信することから開始する。いくつかの構成において、センサデータは、内部センサデータ、外部センサデータ、又は、これらの両方を有する。センサデータは、プロセッサ温度、チップセット温度、又は、サーバシステムの環境温度を含むことができる。
図1A及び図1Bに示すように、工程204において、周波数調整モジュールは、センサデータ及び熱周波数レベルテーブルに少なくとも基づいて、サーバシステムの適切な動作周波数レベルを決定することができる。いくつかの構成において、熱周波数レベルテーブルは、複数のテーブルエントリを含むことができる。複数のテーブルエントリの各々は、サーバシステムが動作可能な特定のセンサデータ(例えば、特定の温度範囲)と、動作周波数レベルの範囲と、を有する。
いくつかの構成において、周波数調整モジュールは、センサデータ及び熱周波数レベルテーブルに少なくとも基づいて、動作周波数レベルの範囲を決定することができる。周波数調整モジュールは、動作周波数レベルの範囲内の最大動作周波数レベルを決定し、最大動作周波数レベルをサーバシステムの適切な動作周波数レベルとして選択する。いくつかの別の例において、周波数調整モジュールは、センサデータ及び熱周波数レベルテーブルに少なくとも基づいて、動作周波数レベルの範囲を決定し、動作周波数レベルの範囲内の中間動作周波数レベルを決定し、中間動作周波数レベルをサーバシステムの適切な動作周波数レベルとして選択する。
工程206において、周波数調整モジュールは、適切な動作周波数レベルがサーバシステム上の以前の動作周波数と異なるか否かを判断する。方法200は、適切な動作周波数レベルがサーバシステム上の以前の動作周波数と同じである場合に工程202に戻り、周波数調整モジュールは、所定の待ち時間後に追加のセンサデータを受信することができる。
工程208において、適切な動作周波数レベルがサーバシステム上の以前の動作周波数と異なる場合に、周波数調整モジュールは、適切な動作周波数レベルをサーバシステム上の第1動作周波数レベルに設定することができ、セルフテストカウントを所定値に設定する。
工程210において、周波数調整モジュールは、サーバシステム上でセルフテストを実行することができる。いくつかの構成において、セルフテストは、内部センサ及び/又は外部センサーからセンサデータを受信して、サーバシステムが適切な動作周波数レベルで正常に動作しているか否かを判断することを含んでもよい。例えば、周波数調整モジュールは、第1の動作周波数レベルで動作している間に、チップセット温度が正常範囲外であるか否かを判断することができる。セルフテストがOKである場合に、周波数調整モジュールは、工程212にてセルフテストカウントをゼロに設定する。方法200は、工程202に戻り、周波数調整モジュールは、所定の待ち時間後に追加のセンサデータを受信する。
セルフテストカウントがOKでない場合に、周波数調整モジュールは、工程214にて、セルフテストカウントがゼロであるか否かを判断することができる。セルフテストカウントがゼロである場合に、周波数調整モジュールは、工程216にて、サーバシステムが熱制御範囲外であることを示すエラーメッセージをサーバシステムのコントローラに送信させることができる。
セルフテストカウントがゼロでない場合に、周波数調整モジュールは、工程218にて、第1動作周波数レベルを第2動作周波数レベルまで1レベル下げ、セルフテストカウントを1レベル下げる。方法200は、その後、工程210に戻り、周波数調整モジュールは、サーバシステムを第2動作周波数レベルで動作させることができる。
(専門用語)
コンピュータネットワークは、エンドポイント(例えば、パーソナルコンピュータとワークステーション)間でデータを伝送するための通信リンク及びセグメントによって相互接続された、地理的に分布したノードの集合である。ローカルエリアネットワーク(LAN)及び広域ネットワーク(WAN)からオーバーレイ及びソフトウェア定義ネットワーク(例えば、仮想拡張可能ローカルエリアネットワーク(VXLAN))まで、多くのタイプのネットワークを利用することができる。
LANは、通常、同じ物理位置(例えば、ビルやキャンパス等)に位置する専用のプライベート通信リンクを介してノードを接続する。一方、WANは、通常、長距離通信リンク(例えば、一般的なキャリア電話回線、光路、同期光学ネットワーク(SONET)又は同期デジタル階層(SDH)リンク等)を介して、地理的に分散したノードを接続する。LAN及びWANは、レイヤ2(L2)及び/又はレイヤ3(L3)ネットワークと装置を含むことができる。
インターネットは、世界中の異種のネットワークを接続するWANの一例であり、各種ネットワークのノード間のグローバル通信を提供する。ノードは、通常、所定のプロトコル(例えば、通信制御プロトコル/インターネットプロトコル(TCP/IP))にしたがって、データの個別のフレーム又はパケットを交換することによって、ネットワークを介して通信する。ここで、プロトコルは、ノードが互いにどのように相互作用するかを定義する一組のルールを参照することができる。コンピュータネットワークは、中間ネットワークノード(例えば、ルータ)によってさらに相互接続されており、各ネットワークの有効なサイズを拡張する。
オーバーレイネットワークは、通常、物理ネットワークインフラストラクチャ上に仮想ネットワークを生成し、階層化することを可能にする。オーバレイネットワークプロトコル(例えば、仮想拡張可能LAN(VXLAN)、汎用ルーティングカプセル化(NVGRE)を用いたネットワーク仮想化、ネットワーク仮想化オーバーレイ(NVO3)及びステートレストランスポートトンネリング(STT)等)は、ネットワークトラフィックが、論理トンネルを介してL2及びL3ネットワークで実行できるようにするトラフィックカプセル化スキームを提供する。このような論理トンネルは、仮想トンネルエンドポイント(VTEPs)を介して発信及び終了することができる。
さらに、オーバーレイネットワークは、VMが通信する仮想L2及び/又はL3オーバーレイネットワークを含むことの可能な仮想セグメント(例えば、VXLANオーバーレイネットワーク内のVXLANセグメント)を有することができる。仮想セグメントは、関連する仮想セグメント又はドメインを具体的に識別することができる例えばVXLANネットワーク識別子等の仮想ネットワーク識別子(VNI)を介して識別することができる。
ネットワーク仮想化は、ハードウェア及びソフトウェアリソースを仮想ネットワーク内で組み合わせることを可能にする。例えば、ネットワーク仮想化では、複数のVMを、それぞれの仮想LAN(VLAN)を介して物理ネットワークに接続することができるようにする。VMは、それぞれのVLANにしたがってグループ化することができ、内部又は外部ネットワーク上の他の装置と同様に、他のVMと通信することができる。
ネットワークセグメント(例えば、物理セグメント若しくは仮想セグメント、ネットワーク、デバイス、ポート、物理リンク若しくは論理リンク、及び/又は、トラフィック等)は、通常、ブリッジ又はフラッドドメインにグループ化される。ブリッジドメイン又はフラッドドメインは、ブロードキャストドメイン(例えば、L2ブロードキャストドメイン)を表す。ブリッジドメイン又はフラッドドメインは、単一のサブネットを有し得るが、複数のサブネットを有してもよい。さらに、ブリッジドメインは、ネットワーク装置(例えば、スイッチ)上のブリッジドメインインタフェースに関連付けることができる。ブリッジドメインインタフェースは、L2ブリッジネットワークとL3ルーテッドネットワークとの間のトラフィックをサポートする論理インタフェースであってもよい。また、ブリッジドメインインタフェースは、インターネットプロトコル(IP)ターミネーション、VPNターミネーション、アドレス解決処理、MACアドレッシング等をサポートしてもよい。ブリッジドメインとブリッジドメインインタフェースは、同じインデックス又は識別子により識別され得る。
さらに、アプリケーションをネットワークにマッピングするために、エンドポイントグループ(EPG)をネットワークで使用することができる。特に、EPGは、ネットワーク内のアプリケーションエンドポイントのグルーピングを用いて、接続性及びポリシーをアプリケーショングループに適用することができる。EPGは、バケットのコンテナ若しくはアプリケーションの集合、又は、アプリケーションコンポーネント、並びに、転送、及び、ポリシーロジックを実行する段(tiers)として機能することができる。また、EPGは、論理的なアプリケーション境界を代わりに用いて、ネットワークポリシー、セキュリティ、及び、アドレッシングからの転送の分離を可能にする。
クラウドコンピューティングは、共有リソースを用いてコンピューティングサービスを提供するために、1つ以上のネットワークに提供され得る。クラウドコンピューティングは、通常、コンピューティングリソースが動的にプロビジョニングされ、ネットワーク(例えば、クラウド)を介して利用可能なリソースの集合からオンデマンドでクライアントコンピュータ若しくはユーザコンピュータ又は他の装置に割り当てられるインターネットベースのコンピューティングを含むことができる。クラウドコンピューティングリソースは、例えば、コンピューティング、ストレージ、ネットワーク装置及び仮想マシン(VM)等の任意のタイプのリソースを含むことができる。例えば、リソースは、サービス装置(ファイヤウオール、ディープパケットインスペクタ、トラフィックモニタ、ロードバランサ等)、計算/処理装置(サーバ、CPU、メモリ、ブルートフォース処理機能)、ストレージデバイス(例えば、ネットワーク接続ストレージ、ストレージエリアネットワーク装置)等を有することができる。また、かかるリソースが用いられて、仮想ネットワーク、仮想マシン(VM)、データベース、アプリケーション(Apps)等をサポートすることができる。
クラウドコンピューティングリソースは、「プライベートクラウド」、「パブリッククラウド」及び/又は「ハイブリッドクラウド」を有することができる。「ハイブリッドクラウド」は、技術を介して相互運用(inter−operate)又は連携(federate)する2つ以上のクラウドから構成されるクラウドインフラストラクチャとすることができる。本質的に、ハイブリッドクラウドは、プライベートクラウドがパブリッククラウドに加わり、パブリッククラウドリソースを安全且つスケーラブルに利用する、プライベートクラウド及びパブリッククラウド間の相互作用である。また、クラウドコンピューティングリソースは、VXLAN等のオーバーレイネットワーク内の仮想ネットワークを介して、プロビジョニングすることができる。
ネットワークスイッチシステムでは、ルックアップデータベースを維持して、スイッチシステムに接続されたいくつかのエンドポイント間のルートを追跡することができる。しかし、エンドポイントは、様々な構成を有することができ、且つ、多数のテナントに関連付けられている。これらのエンドポイントは、各種タイプの識別子(例えば、IPv4、IPv6又はレイヤ2(Layer−2)等)を有することができる。ルックアップデータベースは、異なるタイプのエンドポイント識別子を処理するために、異なるモードで構成される必要がある。ルックアップデータベースの容量は、着信パケットの異なるアドレスタイプを処理するように設計される。さらに、ネットワークスイッチシステム上のルックアップデータベースは、通常、1K仮想ルーティング及び転送(VRF)によって制限される。これにより、各種タイプのエンドポイント識別子を処理するために、改善されたルックアップアルゴリズムが必要とされている。本発明の技術は、電気通信ネットワークにおけるアドレスルックアップに必要な技術を提供する。本発明は、エンドポイント識別子を一様な空間にマッピングし、異なる形式のルックアップを一様に処理することによって、様々なタイプのエンドポイント識別子を統合するためのシステム、方法及びコンピュータ可読ストレージ媒体を開示する。例示的なシステム及びネットワークの簡単な説明は、図3と図4に示されるように開示される。これらの変形例は、各種実施形態において説明される。本技術について図3を参照する。
図3は、本発明を実行するのに適したコンピューティングデバイス300の一例を示す図である。コンピューティングデバイス300は、マスタ中央処理装置(CPU)362と、インタフェース368と、バス315(例えば、PCIバス)と、を有する。CPU362は、適切なソフトウェア又はファームウェアの制御下で動作する場合、パケット管理、エラー検出、及び/又は、例えば配線ミス検出機能等のルーティング機能の実行を担う。CPU362は、好ましくは、オペレーティングシステム及び任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下で、これらの全ての機能を実現する。CPU362は、Motorolaファミリのマイクロプロセッサ又はMIPSファミリのマイクロプロセッサ等の1つ以上のプロセッサ363を含むことができる。他の実施形態において、プロセッサ363は、コンピューティングデバイス300の操作を制御するために特別に設計されたハードウェアである。特定の実施形態において、メモリ361(例えば、不揮発性RAM及び/又はROM)は、さらに、CPU362の一部を形成する。しかし、メモリをシステムに接続し得る多くの異なる方法がある。
インタフェース368は、通常、インタフェースカード(「ラインカード」と呼ばれることもある)として提供される。一般に、それらは、ネットワークを介して、データパケットの送受信を制御し、コンピューティングデバイス300で使用される他の周辺装置をサポートすることがある。インタフェースの中から、イーサネット(登録商標)インタフェース、フレームリレーインタフェース、ケーブルインタフェース、DSLインタフェース、トークンリングインタフェース等を使用することができる。また、各種超高速インタフェースは、高速トークンリングインタフェース、ワイヤレスインタフェース、イーサネット(登録商標)インタフェース、ギガビットイーサネット(登録商標)インタフェース、ATMインタフェース、HSSIインタフェース、POSインタフェース、FDDIインタフェース等を使用することができる。一般に、これらのインタフェースは、適切な媒体と通信する適切なポートを有する。いくつかの実施形態において、インタフェースは、さらに、独立したプロセッサと、場合によっては揮発性RAMと、を有する。独立したプロセッサは、パケット交換、媒体制御及び管理等の通信集中型タスクを制御することができる。通信集中型タスク用に別個のプロセッサを提供することにより、これらのインタフェースは、マスタマイクロプロセッサ362が、ルーティング計算、ネットワーク診断、セキュリティ機能等を効率的に実行できるようにする。
図3に示されるシステムは、本発明の1つの特定のコンピューティングデバイスであるが、本発明の唯一のネットワーク装置構造であることを意味するのではない。例えば、通信やルーティング計算等を処理する単一のプロセッサを有するアーキテクチャが頻繁に用いられる。さらに、別のタイプのインタフェース及び媒体も、ルータと共に用いることができる。
ネットワークデバイスの構成にかかわらず、本明細書に記載のローミング、ルート最適化及びルーティング機能を実行する汎用ネットワーク操作及びメカニズムのためのプログラム命令を記憶するように構成された1つ以上のメモリ又はメモリモジュール(メモリ361を有する)を使用することができる。プログラム命令は、オペレーティングシステム、及び/又は、1つ以上のアプリケーションの操作を制御することができる。メモリ又は複数のメモリは、モビリティバインディング、登録、及び、関連テーブル等のテーブルを記憶するように構成することができる。
図4及び図5は、本発明の実施形態による例示的なシステムを示す図である。当業者であれば、本発明の技術を実施する場合、より適切な実施形態を理解することができるであろう。当業者であれば、他のシステムの実施形態も可能であることが理解できるであろう。
図4は、システムバスコンピューティングシステム構造400を示す図であり、システムのコンポーネントは、バス402を用いて互いに電気的に通信する。例示的なシステム400は、処理ユニット(CPU又はプロセッサ)430と、システムバス402と、を有する。システムバス402は、システムメモリ404(例えば、リードオンリメモリ(ROM)406及びランダムアクセスメモリ(RAM)408)を含む各種システムコンポーネントをプロセッサ430に接続する。システム400は、高速メモリのキャッシュを有し、キャッシュは、プロセッサ430に直接接続され、プロセッサ430に隣接して接続され、又は、プロセッサ430の一部として統合されてもよい。システム400は、プロセッサ430による高速アクセスのために、メモリ404及び/又はストレージデバイス412からキャッシュ428にデータをコピーしてもよい。この方法において、キャッシュは、パフォーマンスブーストを提供して、データを待つ間のプロセッサ430の遅延を防止する。これら及び他のモジュールは、様々な動作を実行するためにプロセッサ430を制御するように構成される。別のシステムメモリ404も同様に使用可能である。メモリ404は、異なるパフォーマンス特性を有する複数の異なるタイプのメモリを有することができる。プロセッサ430は、プロセッサ430を制御するように構成されたストレージデバイス412に記憶されたモジュール1 414、モジュール2 416及びモジュール3 418等の任意の汎用プロセッサ及びハードウェアモジュール又はソフトウェアモジュールを含むことができ、ソフトウェア指令は、実際のプロセッサ設計に組み込まれる。プロセッサ430は、実質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュ等を含む完全に独立したコンピューティングシステムであってもよい。マルチコアプロセッサは、対称又は非対称であってもよい。
ユーザがコンピューティング装置400と相互作用できるようにするため、入力装置420は、任意の数の入力メカニズム(例えば、スピーチ用のマイクロフォン、ジェスチャ又はグラフィカル入力用のタッチスクリーン、キーボード、マウス、モーション入力等)を表すことができる。出力装置422は、従来の技術で知られる1つ以上の数の出力メカニズムである。場合によっては、マルチモーダルシステムは、ユーザがコンピューティング装置400と通信するために、複数のタイプの入力を提供できるようにする。通信インタフェース424は、通常、ユーザ入力及びシステム出力を支配及び管理することができる。特定のハードウェア構成における操作に制限がないため、ここでの基本的な機能は、改良されたハードウェアやファームウェアの構成が開発されるときに容易に置き換えることができる。
ストレージデバイス412は不揮発性メモリであり、ハードディスク、又は、コンピュータがアクセス可能なデータを記憶することの可能な他のタイプのコンピュータ可読媒体(例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリ装置、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)408、読み取り専用メモリ(ROM)406及びこれらの組み合わせ等)であってもよい。
ストレージデバイス412は、プロセッサ430を制御するためにソフトウェアモジュール414,416,418を有してもよい。他のハードウェア又はソフトウェアモジュールも含まれ得る。ストレージデバイス412は、システムバス402に接続されてもよい。一実施形態において、特定の機能を実行するハードウェアモジュールは、機能を実行するために、必要なハードウェアコンポーネント(例えば、プロセッサ430、バス402、ディスプレイ436等)と接続するコンピュータ読み取り可能媒体に記憶されたソフトウェアコンポーネントを含むことができる。
コントローラ410は、システム400上の特殊なマイクロコントローラ又はプロセッサ(例えば、BMC(ベースボード管理コントローラ))であってもよい。場合によっては、コントローラ410は、インテリジェントプラットフォーム管理インタフェイス(IPMI)の一部であってもよい。さらに、場合によっては、コントローラ410は、システム400のマザーボード又はメイン回路基板に組み込まれてもよい。コントローラ410は、システム管理ソフトウェアとプラットフォームハードウェアとの間のインタフェースを管理することができる。また、コントローラ410は、以下に説明するように、例えばコントローラ又は周辺機器等の各種システムデバイス及びコンポーネント(内部及び/又は外部)と通信することができる。
コントローラ410は、通知、警告、及び/又は、イベントに対する特定の応答を生成し、遠隔装置又はコンポーネント(例えば、電子メールメッセージ、ネットワークメッセージ等)と通信し、自動ハードウェア回復工程等の指令や命令を生成する。システム管理者は、以下に更に説明するように、コントローラ410と遠隔通信して、特定のハードウェア回復工程又は操作を開始又は実行することができる。
システム400上の異なるタイプのセンサ(例えば、センサ426)は、冷却ファン速度、電源状態、オペレーティングシステム(OS)状態、ハードウェア状態等のパラメータをコントローラ410に報告する。また、コントローラ410は、コントローラ410により受信されたイベント、警告、通知を管理及び記憶するシステムイベントログコントローラ及び/又はストレージを有してもよい。例えば、コントローラ410又はシステムイベントログコントローラは、1つ以上の装置及びコンポーネントからの警告や通知を受信し、当該警告や通知をシステムイベントログストレージコンポーネント内に維持することができる。
フラッシュメモリ432は、ストレージ及び/又はデータ転送に用いられるシステム400によって用いられる電子不揮発性コンピュータストレージ媒体又はチップであってもよい。フラッシュメモリ432は、電気的に消去及び/又は再プログラムされ得る。フラッシュメモリ432は、例えば、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、ROM、NVRAM、又は、相補型MOS(CMOS)を有する。フラッシュメモリ432は、システム400が起動するときに、システム400により実行されるファームウェア434を、ファームウェア434に対して指定された構成のセットとともに記憶する。さらに、フラッシュメモリ432は、ファームウェア434により用いられる構成を記憶することができる。
ファームウェア434は、基本入力/出力システム(BIOS)又はその後継品、等価物(例えば、エクステンシブルファームウェアインタフェース(EFI)又はユニファイドエクステンシブルファームウェアインタフェス(UEFI))を有する。システム400が起動される毎に、ファームウェア434は、シーケンスプログラムとしてロードされ、実行される。ファームウェア434は、構成のセットに基づいて、システム400に存在するハードウェアを識別、初期化、テストする。ファームウェア434は、システム400上でのセルフテスト(例えば、パワーオンセルフテスト(POST))を実行する。このセルフテストは、各種ハードウェアコンポーネント(例えば、ハードディスクドライブ、光学読み取り装置、冷却装置、メモリモジュール、拡張カード等)の機能性をテストする。ファームウェア434は、オペレーティングシステム(OS)を記憶するために、メモリ404、ROM406、RAM408及び/又はストレージデバイス412内の領域をアドレス及び割り当てることができる。ファームウェア434は、ブートローダ及び/又はOSをロードし、システム400の制御をOSに与えることができる。
システム400のファームウェア434は、ファームウェア434がシステム400内の各種ハードウェアコンポーネントをどのように制御するかを定義するファームウェア構成を有することができる。ファームウェア構成は、システム400内の各種ハードウェアコンポーネントが起動される順序を判断する。ファームウェア434は、各種異なるパラメータの設定を許可するインタフェース(例えば、UEFI)を提供することができ、このパラメータは、ファームウェアのデフォルト設定のパラメータとは異なる。例えば、ユーザ(例えば、システム管理者)は、ファームウェア434を用いて、クロック及びバス速度を指定し、どの周辺機器をシステム400に取り付けるか指定し、監視の状態(例えば、ファン速度、及びCPU温度制限)を指定し、システム400のパフォーマンス全体及び電力使用量に影響する多種の他のパラメータを指定する。
ファームウェア434は、フラッシュメモリ432に記憶されているものとして説明されているが、当業者は、ファームウェア434が、他のメモリ、コンポーネント(例えば、メモリ404又はROM406)に記憶することができるのを理解するであろう。しかし、示されたフラッシュメモリ432に記憶されたファームウェア434は説明目的の例であり、これに限定されない。
システム400は1つ以上のセンサ426を有する。1つ以上のセンサ426は、例えば、1つ以上の温度センサ、熱センサ、酸素センサ、化学センサ、ノイズセンサ、ヒートセンサ、電流センサ、電圧検出器、気流センサ、流量センサ、赤外線放射温度計、熱流束センサ、温度計、高温計等を有する。1つ以上のセンサ426は、例えば、バス402を介して、プロセッサ、キャッシュ428、フラッシュメモリ432、通信インタフェース424、メモリ404、ROM406、RAM408、コントローラ410及びストレージデバイス412と通信する。また、1つ以上のセンサ426は、1つ以上の異なる手段(例えば、集積回路(I2C)、汎用出力(GPO)等を介して、システム内の他のコンポ―ネントと通信することができる。
図5は、説明した方法又は操作の実行、並びに、グラフィカルユーザインタフェース(GUI)の生成及び表示に用いることができるチップセット機構を有する例示的なコンピュータシステム500を示す図である。コンピュータシステム500は、開示された技術を実行するのに用いられるコンピュータハードウェア、ソフトウェア及びファームウェアを含むことができる。システム500は、識別された計算を実行するように構成されたソフトウェア、ファームウェア及びハードウェアを実行することができる任意の数の物理的及び/又は論理的に異なるリソースを表すプロセッサ510を含むことができる。プロセッサ510は、プロセッサ510への入出力を制御することができるチップセット502と通信する。この例において、チップセット502は、情報を出力装置514(例えば、ディスプレイ)に出力し、ストレージデバイス516(磁気媒体、固体媒体を含む)に対して情報を読み書きする。また、チップセット502は、RAM518に対してデータをやり取りする。各種ユーザインタフェースコンポーネント506と相互作用するブリッジ504は、チップセット502と相互作用するために提供され得る。このようなユーザインタフェースコンポーネント506は、キーボード、マイクロフォン、タッチ検出及び処理回路、ポインティングデバイス(マウス等)を有する。一般に、システム500への入力は、機器及び/又は人間が生成した各種ソースの何れかから生じる。
また、チップセット502は、異なる物理的インタフェースを有する1つ以上の通信インタフェース508と相互作用する。このような通信インタフェースは、有線及び無線のローカルエリアネットワーク、ブロードバンドワイヤレスネットワーク及びパーソナルエリアネットワークのためのインタフェースを有する。本発明におけるGUIを生成、表示及び使用する方法のいくつかのアプリケーションは、ストレージデバイス516又は518に記憶されたデータを分析するプロセッサ510が、順序付けられたデータセットを、物理的インタフェースを介して又は機器自身により生成されることにより受信する工程を有する。さらに、機器は、ユーザインタフェースコンポーネント506を介して、ユーザからの入力を受信し、適切な機能(例えば、プロセッサ510を用いて、これらの入力を解釈することによりブラウズ機能を実行する)を実行する。
さらに、チップセット502は、電源が投入されると、コンピュータシステム500によって実行され得るファームウェア512と通信することができる。ファームウェア512は、ファームウェア構成のセットに基づいて、コンピュータシステム500内に存在するハードウェアを認識、初期化及びテストすることができる。ファームウェア512は、システム500上でセルフテスト(例えば、POST)を実行する。セルフテストでは、各種ハードウェアコンポーネント502〜518の機能をテストすることができる。ファームウェア512は、OSを記憶するために、メモリ518内の領域をアドレス指定及び割り当てることができる。ファームウェア512は、ブートローダ及び/又はOSをロードし、システム500の制御をOSに与える。場合によっては、ファームウェア512は、ハードウェアコンポーネント502〜510及び514〜518と通信する。ここで、ファームウェア512は、チップセット502及び/又は1つ以上の他のコンポーネントを介して、ハードウェアコンポーネント502〜510及び514〜518と通信する。場合によっては、ファームウェア512は、ハードウェアコンポーネント502〜510及び514〜518と直接通信することができる。
例示的なシステム300,400,500は、より高い処理能力を提供するために、2つ以上のプロセッサ(例えば、363,430,510)を有することができ、又は、ネットワーク接続されたコンピューティングデバイスのグループ又はクラスタの一部であり得ることが理解されるであろう。
説明をわかりやすくするために、ある実施形態において、装置、デバイスコンポーネント、ソフトウェアで実施される方法における工程やルーティン、又は、ハードウェアとソフトウェアの組み合わせを含む個々の機能ブロックを有するものとして提示することができる。
いくつかの実施形態において、コンピュータ可読ストレージデバイス、媒体及びメモリは、ビットストリーム等を含むケーブル又は無線信号を有する。しかし、言及されるとき、非一時的な(non−transitory)コンピュータ読み取り可能ストレージ媒体は、エネルギー、キャリア信号、電磁波及び信号そのもの等の媒体を明確に排除する。
上記の例における方法は、コンピュータ読み取り可能媒体に記憶されるか利用可能なコンピュータ実行可能命令を用いて実施される。このような命令は、例えば、特定の機能又は機能グループを実行する汎用コンピュータ、専用コンピュータ又は特殊用途処理装置をもたらすか構成する命令及びデータを含むことができる。用いられるコンピュータリソースの一部は、ネットワークを介してアクセス可能である。コンピュータ実行可能命令は、例えば、バイナリ、中間フォーマット命令(例えば、アセンブリ言語)、ファームウェア又はソースコードである。命令、使用した情報、及び/又は、説明した例による方法において生成された情報を記憶するために用いることができるコンピュータ読み取り可能媒体の例は、磁気又は光学ディスク、フラッシュメモリ、不揮発性メモリを備えるUSBデバイス、ネットワークストレージデバイス等を含む。
これらの開示における方法を実施する装置は、ハードウェア、ファームウェア及び/又はソフトウェアを有し、各種フォームファクタの何れかを利用する。このようなフォームファクタの一般的な例は、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、PDA、ラックマウント型装置、スタンドアロン装置等を有する。ここで説明される機能は、周辺装置又はアドインカードにも実装することができる。さらなる例として、このような機能は、単一の装置で実行される異なるチップ間又は異なるプロセス間の回路基板上で実行することができる。
命令、かかる命令を伝達する指令、それらを実行するコンピューティングリソース、及び、かかるコンピューティングリソースをサポートする他の構造は、本明細書に記載の機能を提供する手段である。
本発明の様々な実施形態は、サーバシステムの動作周波数を動的に最適化して、サーバシステムのブート時間を最小化するシステム及び方法を提供する。特定の実施形態では、任意の操作を異なる命令でどのように実現するかを示しているが、他の実施形態では、任意の操作を異なる命令に組み込むことができる。説明を明瞭にするために、本発明のいくつかの実施形態において、デバイス、デバイスコンポーネント、ソフトウェア、又は、ハードウェアとソフトウェアの組み合わせで実現される方法における工程若しくはルーティンを有する機能ブロックを含むものとして示される。
各種実施形態は、場合によっては、いくつかのアプリケーションの何れかを動作させるために用いられる1つ以上のサーバコンピュータ、ユーザコンピュータ又はコンピューティングデバイスを有する多種多様な動作環境で実施することができる。ユーザ又はクライアントデバイスは、標準オペレーティングシステムを実行するデスクトップ又はラップトップコンピュータ等の多数の汎用パーソナルコンピュータ、並びに、モバイルソフトウェアを実行し、いくつかのネットワーク及びメッセージプロトコルをサポートすることができるセルラ、ワイヤレス及びハンドヘルド装置を含むことができる。このようなシステムは、さらに、開発及びデータベース管理等の目的のために様々な市販のオペレーティングシステム及び他の既知のアプリケーションを実行するいくつかのワークステーションを有する。これらの装置は、他の電子装置(例えば、ダミー端末、シンクライアント、ゲームシステム、及び、ネットワークを介して通信可能な他の装置等)を有する。
本発明のいくつかの実施態様又は一部がハードウェアで実現される限り、本発明は、以下の技術の何れか又は組み合わせにより実現される。例えば、データ信号に基づきロジック機能を実行するロジックゲートを有する離散ロジック回路、適切な組み合わせのロジックゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)等のプログラマブルハードウェアフィールドプログラマブルゲートアレイ(FPGA)等が含まれる。
ほとんどの実施形態は、例えばTCP/IP、OSI、FTP、UPnP、NFS、CIFS、AppleTalk(登録商標)等の商用のプロトコルの何れかを用いて通信をサポートするために、当業者によく知られている少なくとも1つのネットワークを使用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、および、これらの任意の組み合わせである。
上記の例における方法は、コンピュータ読み取り可能媒体に記憶されるか、利用可能なコンピュータ実行可能命令を用いて実施される。このような命令は、例えば、特定の機能又は機能グループを実行する汎用コンピュータ、専用コンピュータ又は特殊用途処理装置をもたらすか構成する命令及びデータを含むことができる。用いられるコンピュータリソースの一部は、ネットワークを介してアクセス可能である。コンピュータ実行可能命令は、例えば、バイナリ、中間フォーマット命令(例えば、アセンブリ言語)、ファームウェア又はソースコードである。命令、使用した情報、及び/又は、説明した例による方法において生成された情報を記憶するために用いることができるコンピュータ読み取り可能媒体の例は、磁気又は光学ディスク、フラッシュメモリ、不揮発性メモリを備えるUSBデバイス、ネットワークストレージデバイス等を含む。
これらの開示における方法を実施する装置は、ハードウェア、ファームウェア及び/又はソフトウェアを有し、各種フォームファクタの何れかを利用する。このようなフォームファクタの一般的な例は、サーバコンピュータ、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、PDA等を有する。ここで説明される機能は、周辺装置又はアドインカードにも実装することができる。さらなる例として、このような機能は、単一の装置で実行される異なるチップ間又は異なるプロセス間の回路基板上で実行することができる。
ウェブサーバを用いた実施形態において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Java(登録商標)サーバ、及び、ビジネスアプリケーションサーバを有する任意の種類のサーバ又は中間層アプリケーションを実行することができる。サーバは、ユーザ装置からの要求に応じて、例えば、任意のプログラミング言語(例えば、Java(登録商標)、C、C#、C++)、任意のスクリプト言語(例えば、Perl、Python、TCL)、及びこれらの組み合わせで書き込まれる1つ以上のスクリプト又はプログラムとして実行される1つ以上のウェブアプリケーションを実行すること等により、プログラムやスクリプトを実行することができる。サーバは、公開市場で市販されているものを含むがこれに限定されないデータベースサーバを含むことができる。
サーバシステムは、前述の様々なデータ記憶、他のメモリ、及び、ストレージ媒体を有する。これらは、例えば、ストレージ媒体が1つ以上のコンピュータにローカル接続され(及び/又は存在する)、又は、ネットワークにより、任意の若しくは全てのコンピュータから遠隔で連結される等のように、様々な場所に存在し得る。一組の特定の実施形態において、情報は、当業者によく知られているストレージエリアネットワーク(SAN)中に存在することができる。同様に、コンピュータ、サーバ又は他のネットワーク装置に起因する機能を実行するのに必要とされる任意のファイルは、必要に応じてローカル及び/又はリモートに格納することができる。システムがコンピュータ化された装置を含む場合、このような装置は、バスを介して電気的に接続されるハードウェアコンポーネントを有し、コンポーネントは、例えば、少なくとも1つの中央処理ユニット(CPU)と、少なくとも1つの入力装置(例えば、マウス、キーボード、コントローラ、タッチセンサディスプレイコンポーネント、又は、キーパッド)と、少なくとも1つの出力装置(例えば、ディスプレイ装置、プリンタ、又は、スピーカ)と、を有する。このようなシステムは、さらに、1つ以上のストレージデバイス(例えば、ディスクドライブ、光学ストレージデバイス、及び、ソリッドステートストレージデバイス(例えば、ランダムアクセスメモリ(RAM)又はリードオンリメモリ(ROM))、及び、除去可能な媒体装置、メモリカード、フラッシュカード等)を有する。
このような装置は、さらに、上述したように、コンピュータ可読ストレージ媒体読み取り機、通信装置(例えば、モデム、ネットワークカード(有線又は無線)、赤外線コンピューティングデバイス)、及び、ワーキングメモリを有する。コンピュータ可読ストレージ媒体読み取り機は、コンピュータ可読ストレージ媒体に接続され、又は、コンピュータ可読ストレージ媒体を受け入れる。コンピュータ可読ストレージ媒体は、リモート、ローカル、固定、及び/又は、取り外し可能なストレージデバイスを表してもよく、一時的及び/又は永久的に、コンピュータ可読情報を含有、記憶、送信及び回収するストレージ媒体を表してもよい。システム及び各種デバイスは、一般に、少なくとも1つのワーキングメモリ装置に配置された複数のソフトウェアアプリケーション、モジュール、サービス、又は、他の素子を有し、当該他の素子は、オペレーティングシステム及びアプリケーションプログラム(例えば、クライアントアプリケーション又はウェブブラウザ)を有する。前述した例に基づいて、様々な変形例を有することができることを理解されたい。例えば、カスタマイズされたハードウェアを使用することもでき、及び/又は、特定の素子をハードウェア/ソフトウェア(ポータブルソフトウェア(例えば、アプレット)を含む)若しくはこれらの両方で実施することができる。さらに、その他のコンピューティングデバイス(例えば、ネットワーク入/出力装置)への接続も使用される。
コード又はコードの一部を含むストレージ媒体及びコンピュータ可読媒体は、従来技術で用いられる任意の適切な媒体(例えば、ストレージ媒体及びコンピューティング媒体)を含む。この媒体は、揮発性及び不揮発性、取り外し可能、並びに、非取り外し可能媒体に限定されず、任意の方法や技術で実現され、情報(例えば、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ)を記憶及び/又は送信する。この媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、他の磁気ストレージデバイス、又は、他の任意の媒体を含み、必要な情報を記憶するのに用いられたり、システムデバイスによりアクセスされる。本明細書で提供される技術及び教示に基づいて、当業者であれば、本発明の各種態様を実施する他のやり方及び/又は方法を理解するであろう。
明細書及び図面は、限定的ではなく例示的なものとみなされるべきである。しかしながら、特許請求の範囲に記載された発明のより広い趣旨及び範囲から逸脱することなく、様々な修正及び変更を行うことができることは明らかであろう。
100A,100B…システム
101…周波数調整モジュール
102…プロセッサ
103…メモリ
104…BIOS
105…バス
106…内部センサ
107…冷却コンポーネント
108…外部センサ
109…ストレージデバイス
111…管理装置
112…電源ユニット
113…電源
114…ノースブリッジロジック
115…PCIバス
116…サウスブリッジロジック
150,151…ISAスロット
160…PCIeスロット
161…PCIスロット
170…PCIスロット
200…方法
202〜218…工程
300…コンピューティングデバイス
315…バス
361…メモリ
362…CPU
363…プロセッサ
368…インタフェース
400…システム
402…システムバス
404…メモリ
406…ROM
408…RAM
410…コントローラ
412…ストレージデバイス
414〜418…ソフトウェアモジュール
420…入力装置
426…センサ
428…キャッシュ
430…プロセッサ
432…フラッシュメモリ
434…ファームウェア
500…コンピュータシステム
502…チップセット
508…通信インタフェース
510…プロセッサ
512…ファームウェア
516…ストレージデバイス
518…RAM

Claims (10)

  1. サーバシステムの動作周波数を動的に最適化するコンピュータ実施方法であって、
    前記サーバシステムの周波数調整モジュールにて、前記サーバシステムの1つ以上のセンサからセンサデータを受信する工程と、
    前記センサデータと複数のエントリを有する熱周波数レベルテーブルとに少なくとも基づいて、適切な動作周波数レベルを決定する工程と、
    前記適切な動作周波数レベルが前記サーバシステムの以前の動作周波数と異なると判断した場合
    前記適切な動作周波数レベルを前記サーバシステムの第1動作周波数レベルとして設定するとともに
    セルフテストカウントを所定値に設定する工程と、
    前記第1動作周波数レベルを用いたセルフテストがOKでないと判断するとともに
    前記セルフテストカウントがゼロでないと判断した場合
    前記第1動作周波数レベルを第2動作周波数レベルまで1レベル下げるとともに
    前記セルフテストカウントを1レベル下げる工程と、
    順次実行することを特徴とするコンピュータ実施方法。
  2. 前記適切な動作周波数レベルを決定する工程は、
    少なくとも前記センサデータ及び前記熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定する工程と、
    前記動作周波数レベルの範囲内の最大動作周波数レベルを決定する工程と、
    前記最大動作周波数レベルを前記サーバシステムの適切な動作周波数レベルとして選択する工程と、
    順次実行することを特徴とする請求項1に記載のコンピュータ実施方法。
  3. 前記適切な動作周波数レベルを決定する工程は、
    少なくとも、前記センサデータ及び前記熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定する工程と、
    前記動作周波数レベルの前記範囲内の中間動作周波数レベルを決定する工程と、
    前記中間動作周波数レベルを前記サーバシステムの適切な動作周波数レベルとして選択する工程と、
    順次実行することを特徴とする請求項1に記載のコンピュータ実施方法。
  4. 前記適切な動作周波数レベルが前記サーバシステムの以前の動作周波数と同じであると判断した場合
    前記サーバシステムの前記周波数調整モジュールにて、所定の待ち時間後に、前記1つ以上のセンサから追加のセンサデータを受信する工程を実行し
    前記セルフテストカウントがゼロであると判断した場合
    前記サーバシステムが熱制御範囲外であることを示すエラーメッセージを、前記サーバシステムのコントローラに送信させる工程と、
    実行することを特徴とする請求項1に記載のコンピュータ実施方法。
  5. 前記複数のエントリの各々は特定のセンサデータと、前記サーバシステムが動作可能な動作周波数の対応する範囲と、を有し、
    前記複数のエントリは、閾値低温値よりも低いシステム温度範囲と、前記サーバシステムが動作可能な対応する動作周波数レベルと、潜在的なダメージを前記システムのコンポーネントに示す警告メッセージを送信するための最小の閾値動作周波数レベルと、を有し、
    前記センサデータは、内部センサデータ及び外部センサデータのうち少なくとも1つを有し、前記センサデータは、プロセッサ温度、チップセット温度及びサーバシステムの環境温度のうち少なくとも1つを有することを特徴とする請求項1に記載のコンピュータ実施方法。
  6. サーバシステムの動作周波数を動的に最適化するシステムであって、
    プロセッサと、
    命令を記憶するコンピュータ可読媒体と、を備え、
    前記命令は、前記プロセッサにより実行されると、
    前記システムの周波数調整モジュールにて、前記システムの1つ以上のセンサからセンサデータを受信する工程と、
    前記センサデータと、複数のエントリを有する熱周波数レベルテーブルと、に少なくとも基づいて、適切な動作周波数レベルを決定する工程と、
    前記適切な動作周波数レベルが前記システムの以前の動作周波数と異なると判断した場合
    前記適切な動作周波数レベルを前記システムの第1動作周波数レベルとして設定するとともに
    セルフテストカウントを所定値に設定する工程と、
    前記第1動作周波数レベルを用いたセルフテストがOKでないと判断するとともに
    前記セルフテストカウントがゼロでないと判断した場合
    前記第1動作周波数レベルを第2動作周波数レベルまで1レベル下げるとともに
    前記セルフテストカウントを1レベル下げる工程と、
    を含む操作を前記システムに順次実行させる、
    ことを特徴とするシステム。
  7. 前記適切な動作周波数レベルを決定する工程は、
    少なくとも前記センサデータ及び前記熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定する工程と、
    前記動作周波数レベルの範囲内の最大動作周波数レベルを決定する工程と、
    前記最大動作周波数レベルを前記システムの適切な動作周波数レベルとして選択する工程と、
    順次実行することを特徴とする請求項6に記載のシステム。
  8. 前記適切な動作周波数レベルを決定する工程は、
    少なくとも前記センサデータ及び前記熱周波数レベルテーブルに基づいて、動作周波数レベルの範囲を決定する工程と、
    前記動作周波数レベルの範囲内の中間動作周波数レベルを決定する工程と、
    前記中間動作周波数レベルを前記システムの前記適切な動作周波数レベルとして選択する工程と、
    順次実行することを特徴とする請求項6に記載のシステム。
  9. 前記命令は、前記プロセッサにより実行されると、
    前記適切な動作周波数レベルが前記サーバシステムの以前の動作周波数と同じであると判断するか、前記セルフテストがOKであると判断した場合
    前記サーバシステムの周波数調整モジュールにて、所定の待ち時間後に、前記1つ以上のセンサから追加のセンサデータを受信する工程を含む操作を前記システムに実行させ
    前記セルフテストカウントがゼロであると判断した場合
    前記サーバシステムが熱制御範囲外であることを示すエラーメッセージを、前記サーバシステムのコントローラに送信させる工程を含む操作を前記システムに実行させる、
    ことを特徴とする請求項6に記載のシステム。
  10. 前記複数のエントリの各々は特定のセンサデータと、前記サーバシステムが動作可能な動作周波数の対応する範囲と、を有し、
    前記複数のエントリは閾値低温値よりも低いシステム温度範囲と、前記サーバシステムが動作可能な対応する動作周波数レベルと、潜在的なダメージを前記システムのコンポーネントに示す警告メッセージを送信するための最小の閾値動作周波数レベルと、を有し、
    前記センサデータは、内部センサデータ及び外部センサデータのうち少なくとも1つを有し、前記センサデータは、プロセッサ温度、チップセット温度及びサーバシステムの環境温度のうち少なくとも1つを有することを特徴とする請求項6に記載のシステム。
JP2017190494A 2017-03-02 2017-09-29 ブートのハードウェア周波数を動的に最適化するシステム及び方法 Active JP6463814B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/447,900 US10402205B2 (en) 2017-03-02 2017-03-02 System and method for dynamically optimizing hardware frequency for booting
US15/447,900 2017-03-02

Publications (2)

Publication Number Publication Date
JP2018147461A JP2018147461A (ja) 2018-09-20
JP6463814B2 true JP6463814B2 (ja) 2019-02-06

Family

ID=59298266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017190494A Active JP6463814B2 (ja) 2017-03-02 2017-09-29 ブートのハードウェア周波数を動的に最適化するシステム及び方法

Country Status (5)

Country Link
US (1) US10402205B2 (ja)
EP (1) EP3370148A1 (ja)
JP (1) JP6463814B2 (ja)
CN (1) CN108536476B (ja)
TW (1) TWI631452B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274069B (zh) * 2018-12-05 2023-07-07 锐迪科(重庆)微电子科技有限公司 数据处理方法及装置
TWI723332B (zh) * 2019-01-22 2021-04-01 華碩電腦股份有限公司 電腦系統管理方法與電腦系統
US11394693B2 (en) * 2019-03-04 2022-07-19 Cyxtera Cybersecurity, Inc. Establishing network tunnel in response to access request
CN110018855A (zh) * 2019-03-27 2019-07-16 深圳创维-Rgb电子有限公司 一种基于安卓***开机优化方法、存储介质及智能终端
TWI738139B (zh) * 2019-12-04 2021-09-01 財團法人資訊工業策進會 資料擷取裝置、系統及其方法
US11740944B2 (en) * 2019-12-12 2023-08-29 Advanced Micro Devices, Inc. Method and apparatus for managing processor functionality
KR20220028443A (ko) 2020-08-28 2022-03-08 삼성전자주식회사 주변장치 인터페이스를 포함하는 장치 및 그것의 동작 방법
WO2024065415A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Methods, systems, articles of manufacture and apparatus to synchronize tasks

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470289B1 (en) * 1999-08-05 2002-10-22 Compaq Information Technologies Group, L.P. Independently controlling passive and active cooling in a computer system
US20030074591A1 (en) * 2001-10-17 2003-04-17 Mcclendon Thomas W. Self adjusting clocks in computer systems that adjust in response to changes in their environment
US7814350B2 (en) * 2002-10-03 2010-10-12 Via Technologies, Inc. Microprocessor with improved thermal monitoring and protection mechanism
US7206960B2 (en) * 2003-08-22 2007-04-17 Hewlett-Packard Development Company, L.P. Bus clock frequency management based on device load
CN100334527C (zh) * 2003-12-15 2007-08-29 仁宝电脑工业股份有限公司 动态调整中央处理器频率的方法
US7577859B2 (en) * 2004-02-20 2009-08-18 International Business Machines Corporation System and method of controlling power consumption in an electronic system by applying a uniquely determined minimum operating voltage to an integrated circuit rather than a predetermined nominal voltage selected for a family of integrated circuits
US7386737B2 (en) * 2004-11-02 2008-06-10 Intel Corporation Method and apparatus to control temperature of processor
US7747881B2 (en) 2006-08-14 2010-06-29 Globalfoundries Inc. System and method for limiting processor performance
US7808894B2 (en) * 2007-11-09 2010-10-05 International Business Machines Corporation Managing bursts of traffic in such a manner as to improve the effective utilization of session servers
KR101579822B1 (ko) * 2009-01-13 2015-12-24 삼성전자주식회사 화상형성장치 및 그 정착기 구동 제어 방법
US9052915B2 (en) * 2010-09-13 2015-06-09 Hewlett-Packard Development Company, L.P. Booting a machine using thermal credits to adjust operating speed of a component
US9274805B2 (en) * 2012-02-24 2016-03-01 Qualcomm Incorporated System and method for thermally aware device booting
TWI489935B (zh) * 2012-11-28 2015-06-21 Hon Hai Prec Ind Co Ltd 風扇控制系統及風扇控制方法
US20140163765A1 (en) * 2012-12-07 2014-06-12 Qualcomm Incorporated System and method for estimating ambient temperaure from a portable computing device
US9110735B2 (en) * 2012-12-27 2015-08-18 Intel Corporation Managing performance policies based on workload scalability
US9563226B2 (en) * 2013-09-13 2017-02-07 Marvell World Trade Ltd. Dynamic clock regulation based on duty cycle thresholds
US20160327999A1 (en) * 2014-09-17 2016-11-10 Mediatek Inc. Dynamic frequency scaling in multi-processor systems
US10606335B2 (en) * 2014-12-12 2020-03-31 Via Alliance Semiconductor Co., Ltd. System and method for dynamically adjusting voltage frequency
US10324137B2 (en) * 2015-02-24 2019-06-18 Quanta Computer Inc. Intelligent method for calibrating battery capacity
US9954727B2 (en) * 2015-03-06 2018-04-24 Quanta Computer Inc. Automatic debug information collection
US10007310B2 (en) * 2016-07-08 2018-06-26 Qualcomm Incorporated Circuits and methods providing calibration for temperature mitigation in a computing device

Also Published As

Publication number Publication date
EP3370148A1 (en) 2018-09-05
TWI631452B (zh) 2018-08-01
CN108536476B (zh) 2021-08-24
JP2018147461A (ja) 2018-09-20
US20180253317A1 (en) 2018-09-06
US10402205B2 (en) 2019-09-03
CN108536476A (zh) 2018-09-14
TW201833714A (zh) 2018-09-16

Similar Documents

Publication Publication Date Title
JP6453965B2 (ja) Biosセットアップオプションを自動的に更新するシステム及び方法
JP6484316B2 (ja) ファームウェアを遠隔更新するシステム及び方法
JP6559842B2 (ja) マルチノードシステムファン制御スイッチ
JP6462034B2 (ja) ダウンストリームコンポーネンツに新鮮な空気を送る冷却システム
JP6463814B2 (ja) ブートのハードウェア周波数を動的に最適化するシステム及び方法
JP6805116B2 (ja) Psuの待機電源が機能しない場合に動作可能なサーバシステム
JP6608979B2 (ja) 電圧レギュレータセルフバーンインテストのための方法、システム、及び記憶媒体
JP2019030211A (ja) バッテリバックアップシステム用のoリングfet制御方法
JP2018116680A (ja) 電源ユニット(psu)管理
TWI637611B (zh) 使用wol的系統復原

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181211

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190104

R150 Certificate of patent or registration of utility model

Ref document number: 6463814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250