(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-21
(45)【発行日】2023-11-30
(54)【発明の名称】BIOSパフォーマンスモードコンフィギュレーション配置
(51)【国際特許分類】
G06F 9/4401 20180101AFI20231122BHJP
G06F 9/445 20180101ALI20231122BHJP
【FI】
G06F9/4401
G06F9/445
(21)【出願番号】P 2022126184
(22)【出願日】2022-08-08
【審査請求日】2022-08-08
(32)【優先日】2022-01-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508018934
【氏名又は名称】廣達電腦股▲ふん▼有限公司
【氏名又は名称原語表記】Quanta Computer Inc.
【住所又は居所原語表記】No.188,Wenhua 2nd Rd.,Guishan Dist.,Taoyuan City 333,Taiwan
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】陳 龍志
(72)【発明者】
【氏名】陳 天佑
(72)【発明者】
【氏名】簡 庭威
(72)【発明者】
【氏名】黄 昭凱
【審査官】武田 広太郎
(56)【参考文献】
【文献】米国特許出願公開第2019/0050234(US,A1)
【文献】国際公開第2020/084927(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/4401
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
コンフィギュレーションデータベースを生成するためのコンピュータ実施方法であって、
ハードウェアコンフィギュレーションを有するコンピュータシステムのブート処理に関連する一つ以上のパフォーマンスパラメータを受信する工程であって、前記コンピュータシステムのブート処理が、基本入出力システム(BIOS)を用いる、工程と、
前記一つ以上のパフォーマンスパラメータと関連するBIOSコンフィギュレーションのセットを識別する工程と、
前記一つ以上のパフォーマンスパラメータと関連する、識別された前記BIOSコンフィギュレーションのセットのうち複数のユニークな組み合わせを識別する工程と、
前記複数のユニークな組み合わせの各々に対し、前記一つ以上のパフォーマンスパラメータを分析して、分析データを生成する工程と、
前記分析データに少なくとも部分的に基づいて、前記複数のユニークな組み合わせのうち選択された組み合わせを決定する工程と、
前記選択された組み合わせを前記一つ以上のパフォーマンスパラメータと関連付けて保存する工程と、
を含むことを特徴とするコンピュータ実施方法。
【請求項2】
前記複数のユニークな組み合わせの各々に対し、前記一つ以上のパフォーマンスパラメータを分析する工程は、
ライブコンピュータシステムと関連するBIOSコンフィギュレーションデータを受信する工程と、
前記ライブコンピュータシステムと関連するパフォーマンスデータを受信する工程と、
前記ライブコンピュータシステムと関連する前記BIOSコンフィギュレーションデータが、前記複数のユニークな組み合わせのうち何れかに一致するか否かを識別する工程と、
前記ライブコンピュータシステムと関連する前記BIOSコンフィギュレーションデータが、前記複数のユニークな組み合わせのうち何れかに一致すると識別されたことに応じて、前記複数のユニークな組み合わせのうち一致する組み合わせに対して、受信されたパフォーマンスデータを用いる工程と、
を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
【請求項3】
前記選択された組み合わせを、コンフィギュレーションペイロードにパッケージする工程と、
前記コンフィギュレーションペイロードを送信する工程であって、前記コンフィギュレーションペイロードは、前記コンピュータシステムで受信されると、前記BIOSに、コンフィギュレーションプリセットを提示させ、前記コンフィギュレーションプリセットが選択されると、前記BIOSに、前記選択された組み合わせを用いて起動させる工程と、
を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
【請求項4】
少なくとも一つの代替の組み合わせを、前記コンフィギュレーションペイロードにパッケージする工程であって、前記コンフィギュレーションペイロードは、前記コンピュータシステムで受信されると、前記BIOSに、少なくとも一つの追加のコンフィギュレーションプリセットを提示させ、前記少なくとも一つの代替の組み合わせのうち何れかの組み合わせが選択されると、前記BIOSに、前記少なくとも一つの代替の組み合わせのうち対応する組み合わせを用いて起動させる工程、
を含むことを特徴とする請求項3に記載のコンピュータ実施方法。
【請求項5】
コンピュータ実施方法であって、
コンピュータ
システムの基本入出力システム(BIOS)ファームウェアが、ベースボードマネジメントコントローラー(BMC)メモリにアクセスする工程と、
前記BMCメモリ内の一つ以上のコンフィギュレーションペイロードを識別する工程であって、前記一つ以上のコンフィギュレーションペイロードの各々は、BIOSコンフィギュレーション値のユニークな組み合わせを含む、工程と、
BIOSセットアップユーティリティを提示する工程であって、前記BIOSセットアップユーティリティを提示することは、前記一つ以上のコンフィギュレーションペイロードの各々を、各々のコンフィギュレーションプリセットとして提示する工程を含む、工程と、
前記一つ以上のコンフィギュレーションペイロードのうちの選択されたコンフィギュレーションペイロードに関連する、選択されたコンフィギュレーションプリセットについてのユーザー選択を受信する工程と、
前記選択されたコンフィギュレーションプリセットを実施する工程であって、前記選択されたコンフィギュレーションプリセットを実施することは、前記選択されたコンフィギュレーションペイロードの前記BIOSコンフィギュレーション値の前記ユニークな組み合わせを用いて、前記コンピュータシステムを起動する工程を含む、工程と、
を含むことを特徴とするコンピュータ実施方法。
【請求項6】
前記ユーザー選択を受信する前に、BIOSメモリから現在のBIOSコンフィギュレーションをロードする工程を含み、
前記選択されたコンフィギュレーションプリセットを実施する工程は、
前記現在のBIOSコンフィギュレーションを前記BMCメモリに複製する工程と、
前記BIOSメモリ内の前記現在のBIOSコンフィギュレーションを前記選択されたコンフィギュレーションペイロードで上書きする工程であって、前記選択されたコンフィギュレーションペイロードの前記BIOSコンフィギュレーション値の前記ユニークな組み合わせを用いて、前記コンピュータシステムを起動する工程は、前記BIOSメモリに保存された前記選択されたコンフィギュレーションペイロードを用いて、前記コンピュータシステムを起動する工程を含む、工程と、
を含むことを特徴とする請求項5に記載のコンピュータ実施方法。
【請求項7】
前記コンピュータシステムのブート中に、前記BIOSメモリに保存された前記選択されたコンフィギュレーションペイロードを用いて、失敗を検出する工程と、
前記BIOSコンフィギュレーションを前記BMCメモリから前記BIOSメモリに複製することによって、前記BIOSメモリに保存された前記選択されたコンフィギュレーションペイロードを前記現在のBIOSコンフィギュレーションで上書きする工程と、
前記BMCメモリから前記BIOSメモリに複製された前記現在のBIOSコンフィギュレーションを用いて、前記コンピュータシステムを起動する工程と、
を含むことを特徴とする請求項6に記載のコンピュータ実施方法。
【請求項8】
一つ以上の変更されたBIOSコンフィギュレーション値を示すユーザー入力を受信する工程と、
受信したユーザー入力に少なくとも部分的に基づいて、ユーザー構成BIOSコンフィギュレーションを生成する工程と、
前記ユーザー構成BIOSコンフィギュレーションを、前記一つ以上のコンフィギュレーションペイロードの一つとして前記BMCメモリに保存する工程と、
を含むことを特徴とする請求項5に記載のコンピュータ実施方法。
【請求項9】
コンピュータシステムであって、
BMCメモリを有するベースボードマネジメントコントローラー(BMC)と、
ユーザー入力装置と、
一つ以上のデータプロセッサと、
前記一つ以上のデータプロセッサに結合されたメモリであって、機械可読命令を保存するメモリと、を備え、
前記メモリは、複数の基本入出力システム(BIOS)コンフィギュレーション値を保存するためのBIOSメモリを含み、
前記機械可読命令は、前記一つ以上のデータプロセッサによって実行されると、
前記BMCメモリにアクセスする工程と、
前記BMCメモリ内の一つ以上のコンフィギュレーションペイロードを識別する工程であって、前記一つ以上のコンフィギュレーションペイロードの各々は、BIOSコンフィギュレーション値のユニークな組み合わせを含む、工程と、
BIOSセットアップユーティリティを提示する工程であって、前記BIOSセットアップユーティリティを提示することは、前記一つ以上のコンフィギュレーションペイロードの各々を、各々のコンフィギュレーションプリセットとして提示する工程を含む、工程と、
前記ユーザー入力装置を介して、前記一つ以上のコンフィギュレーションペイロードのうち選択されたコンフィギュレーションペイロードに関連する、選択されたコンフィギュレーションプリセットについてのユーザー選択を受信する工程と、
前記選択されたコンフィギュレーションプリセットを実施する工程であって、前記選択されたコンフィギュレーションプリセットを実施することは、前記選択されたコンフィギュレーションペイロードの前記BIOSコンフィギュレーション値の前記ユニークな組み合わせを用いて、前記コンピュータシステムを起動する工程を含む、工程と、
を含む動作を前記一つ以上のデータプロセッサに実行させることを特徴とするコンピュータシステム。
【請求項10】
前記動作は、
前記ユーザー選択を受信する前に、前記BIOSメモリから現在のBIOSコンフィギュレーションをロードする工程を含み、
前記選択されたコンフィギュレーションプリセットを実施する工程は、
前記現在のBIOSコンフィギュレーションを前記BMCメモリに複製する工程と、
前記BIOSメモリ内の前記現在のBIOSコンフィギュレーションを前記選択されたコンフィギュレーションペイロードで上書きする工程であって、前記選択されたコンフィギュレーションペイロードの前記BIOSコンフィギュレーション値の前記ユニークな組み合わせを用いて、前記コンピュータシステムを起動する工程は、前記BIOSメモリに保存された前記選択されたコンフィギュレーションペイロードを用いて、前記コンピュータシステムを起動する工程を含む、工程と、
を含むことを特徴とする請求項9に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムに関し、特に、コンピュータファームウェア(例えば、BIOSファームウェア)の操作に関する。
【背景技術】
【0002】
コンピュータシステムは、しばしば、システム起動時に、BIOS(Basic Input/Output System)ファームウェアを用いて、各種の初期化プロセス(initialization process)を処理する。いくつかのBIOSコンフィギュレーションは、必要に応じて変更及び調整することができ、各BIOSコンフィギュレーションは、コンピュータシステムの起動工程に影響を与えることができる。一般的に、BIOSコンフィギュレーション毎の値のデフォルトセットがコンピュータシステムに提供又は保存され、コンピュータシステムを確実に起動させる。このBIOSコンフィギュレーション値のデフォルトセットは、異なるコンピュータシステムや異なるタイプのコンピュータシステム間で使用可能に設定される。BIOSコンフィギュレーション値のデフォルトセットは、通常、コンピュータシステムを確実に起動させるのに用いることができるが、一般的に、デフォルト設定は、各種パフォーマンスパラメータ(例えば、ブート速度、オペレーティングシステムインストール速度、エネルギー使用、熱発生等)を最適化しない。さらに、コンピュータシステムのハードウェアコンフィギュレーションが変更された場合、デフォルトBIOSコンフィギュレーション値がもはや適切ではない可能性がある。
【0003】
よって、BIOSコンフィギュレーション値を調整するための改善された技術が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、BIOSパフォーマンスモードコンフィギュレーション配置(deployment)を提供することを目的とする。
【課題を解決するための手段】
【0005】
実施形態という用語及び同様の用語は、本開示及び以下の請求項の発明の全てを広く言及することを意図している。これらの用語を含む複数の提示は、本明細書に記載される発明を限定するものではなく、以下の請求項の意義や範囲を限定するものでもないことを理解されるべきである。本明細書でカバーされる本発明の実施形態は、この概要ではなく、以下の請求項により定義される。この概要は、本開示の各種態様の高レベルの概説であり、以下の詳細な説明の段落においてさらに記載されるいくつかの概念を紹介するものである。この概要は、請求される発明の重要な又は必須の特徴を特定することを意図しておらず、請求された発明の範囲を決定するために単独で使用されることを意図していない。発明は、本開示の明細書全体、任意の又は全ての図面、及び、各請求項の適切な部分を参照することによって理解されるべきである。
【0006】
本発明の実施形態は、コンフィギュレーションデータベースを生成するコンピュータ実施方法を有する。本方法は、コンピュータシステムのブート処理に関連する一つ以上のパフォーマンスパラメータを受信する工程を有し、コンピュータシステムは、ハードウェアコンフィギュレーションを有する。コンピュータシステムのブート処理は、BIOSを用いる。本方法は、一つ以上のパフォーマンスパラメータに関連するBIOSコンフィギュレーションのセットを識別する工程をさらに有する。本方法は、すでに識別されたBIOSコンフィギュレーションのセットの複数のユニークな(unique)組み合わせを識別する工程をさらに有し、BIOSコンフィギュレーションのセットは、一つ以上のパフォーマンスパラメータに関連する。本方法は、複数のユニークな組み合わせの各々に対して、一つ以上のパフォーマンスパラメータを分析して、分析データを生成する工程をさらに有する。本方法は、分析データの少なくとも一部に基づいて、複数のユニークな組み合わせのうち選択された組み合わせを決定する工程をさらに有する。本方法は、選択された組み合わせを、一つ以上のパフォーマンスパラメータと関連付けて保存する工程をさらに有する。
【0007】
本発明の実施形態は、コンピュータ実施方法を有し、本方法は、コンピュータシステムのBIOSファームウェアによって、ベースボードマネジメントコントローラー(BMC)メモリにアクセスする工程を有する。本方法は、BMCメモリ内の一つ以上のコンフィギュレーションペイロード(configuration payload)を識別する工程をさらに有する。一つ以上のコンフィギュレーションペイロードの各々は、BIOSコンフィギュレーション値のユニークな組み合わせを含む。本方法は、BIOSセットアップユーティリティ(setup utility)を提示する工程をさらに有する。BIOSセットアップユーティリティの提示は、一つ以上のコンフィギュレーションペイロードの各々を、各々のコンフィギュレーションプリセット(configuration preset)として提示する工程を有する。本方法は、ユーザー選択を受信して、選択されたコンフィギュレーションプリセットを選択する工程をさらに有し、選択されたコンフィギュレーションプリセットは、一つ以上のコンフィギュレーションペイロードのうち選択されたコンフィギュレーションペイロードと関連する。本方法は、選択されたコンフィギュレーションプリセットを実施する工程をさらに有する。選択されたコンフィギュレーションプリセットの実施は、選択されたコンフィギュレーションペイロードのBIOSコンフィギュレーション値のユニークな組み合わせを用いて、コンピュータシステムを起動する工程を有する。
【0008】
本発明の実施形態は、コンピュータシステムを有し、コンピュータシステムは、BMCメモリを有するベースボードマネジメントコントローラー(BMC)を有する。コンピュータシステムは、ユーザー入力装置をさらに有する。コンピュータシステムは、一つ以上のデータプロセッサをさらに有する。コンピュータシステムは、一つ以上のデータプロセッサに結合されたメモリをさらに有する。メモリは、その中に保存された機械可読命令を有する。メモリは、BIOSメモリを有しており、複数のBIOSコンフィギュレーション値を保存する。機械可読命令が、一つ以上のデータプロセッサによって実行されると、一つ以上のデータプロセッサに動作を実行させる。動作は、BMCメモリにアクセスする工程を有する。動作は、BMCメモリ内の一つ以上のコンフィギュレーションペイロードを識別する工程をさらに有する。一つ以上のコンフィギュレーションペイロードの各々は、BIOSコンフィギュレーション値のユニークな組み合わせを含む。動作は、BIOSセットアップユーティリティの提示をさらに有する。BIOSセットアップユーティリティの提示は、一つ以上のコンフィギュレーションペイロードの各々を、各々のコンフィギュレーションプリセットとして提示する工程を有する。動作は、ユーザー入力装置を介して、ユーザー選択を受信して、選択されたコンフィギュレーションプリセットを選択する工程を有し、選択されたコンフィギュレーションプリセットは、一つ以上のコンフィギュレーションペイロードのうち選択されたコンフィギュレーションペイロードと関連する。動作は、選択されたコンフィギュレーションプリセットを実施する工程をさらに有する。選択されたコンフィギュレーションプリセットの実施は、選択されたコンフィギュレーションペイロードのBIOSコンフィギュレーション値のユニークな組み合わせを用いて、コンピュータシステムを起動する工程を有する。
【0009】
上記の概要は、本開示の各実施形態又は各態様を表すことを意図するものではない。むしろ、上述した概要は、本明細書に記載されるいくつかの新規な態様及び特徴の例を単に提供するに過ぎない。上記の特徴及び利点と他の特徴及び利点とは、添付の図面及び特許請求の範囲に関連して考慮される場合、本発明を実施するための代表的な実施形態及びモードの以下の詳細の説明から容易に明らかになるであろう。本開示の追加の態様は、以下に簡単な説明が提供される図面を参照してなされる様々な実施形態の詳細な説明に照らして、当業者には明らかである。
【発明の効果】
【0010】
本発明の改善された技術により、BIOSコンフィギュレーション値を適切に調整することができる。
【0011】
明細書の内容は、以下の添付図面を参照する。添付図面において、異なる図面における同様の符号は、同様の又は類似する要素を示す。
【図面の簡単な説明】
【0012】
【
図1】本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを生成、配置及び/又は使用するコンピュータ環境を示すブロック図である。
【
図2】本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを生成するプロセスを示すフローチャートである。
【
図3】本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを表示及び実施するプロセスを示すフローチャートである。
【
図4】本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを共有及び実施するプロセス400を示すマルチシステム(multi-system)フローチャートである。
【
図5】本発明の特定の態様による、BIOSセットアップユーティリティの例示的なグラフィカルユーザーインターフェース(graphical user interface)を示す図である。
【
図6】本発明の特徴及びプロセスを実施する例示的なシステムアーキテクチャのブロック図である。
【発明を実施するための形態】
【0013】
本発明の特定の態様及び特徴は、パフォーマンスモードBIOS(Basic Input/Output System)構成を生成、配置(distributing)及び使用するためのシステム及び方法に関する。各パフォーマンスモードBIOSコンフィギュレーションは、特定のパフォーマンスパラメータ(例えば、ブート速度、オペレーティングシステム(OS)インストール速度等)又はパフォーマンスパラメータのセットを最適化するために構築されたBIOSコンフィギュレーション値のユニークなセットとすることができる。所定のハードウェアコンフィギュレーション及び/又はパフォーマンスパラメータのセットに基づいて、一つ以上のパフォーマンスモードBIOSコンフィギュレーションがパッケージ化され、一つ以上のコンフィギュレーションペイロードの形式でBMCのメモリに転送される。BIOSセットアップユーティリティは、全てのコンフィギュレーションペイロードを表示することができ、例えば、パフォーマンスモードのタイプ(例えば、「ブート速度パフォーマンスモード」及び「OSインストールパフォーマンスモード」)によりリストされ、それは、BMCメモリ内で利用可能であり、且つ、現在のBIOSコンフィギュレーションを含むメモリを、選択されたコンフィギュレーションペイロードで上書きするのをユーザーに許可する。
【0014】
ここで使用されるBIOSという用語は、コンピュータシステムを起動するのに用いられる任意のファームウェアを含む。よって、BIOSという用語は、コンピュータシステムを起動するのに用いられるUEFIファームウェアを含むことを意図する。よって、BIOSセットアップユーティリティは、UEFIセットアップユーティリティを含むことを意図し、且つ、BIOSコンフィギュレーションは、UEFI設定を含むことを意図する。
【0015】
BIOSコンフィギュレーションは、BIOSファームウェアの任意の調整可能な設定(例えば、ブート順序(boot order)、インターフェース設定(例えば、シリアルATA設定、USB設定等)、電源オプション(power option)、ディスプレイ設定、WOL(wake-on-LAN)設定、プロセッサ設定、メモリ設定等)である。各BIOSコンフィギュレーションは、設定値を保存することにより設定される。よって、各BIOSコンフィギュレーションは、関連するBIOSコンフィギュレーション値を有し、この値は、特定のBIOSコンフィギュレーションがブートプロセスにどのように影響するかを示す。BIOSコンフィギュレーションのセットは、調整可能なBIOSコンフィギュレーションの集合である。BIOSコンフィギュレーション値のセットは、一つ以上のBIOSコンフィギュレーションの一つ以上の値の集合である。BIOSコンフィギュレーションは、BIOSコンフィギュレーション値のセットを有する。場合によっては、BIOSコンフィギュレーションは、任意の所定のBIOSファームウェアにおいて利用可能な各BIOSコンフィギュレーションのBIOSコンフィギュレーション値を有する。
【0016】
ある場合において、BIOSコンフィギュレーションは、BIOSコンフィギュレーション値がライブシステム上で使用されているかのように保存される場合と同じフォーマットで保存される。例えば、ライブシステムにおいて、そのシステムのBIOSコンフィギュレーション(例えば、現在のBIOSコンフィギュレーション)は、BIOSメモリの一部(例えば、BIOSコンフィギュレーション値を保存するのに用いられる不揮発性ランダムアクセスメモリ(NVRAM))の一部である。コンピュータシステム上で用いられるパフォーマンスモードBIOSコンフィギュレーションは、必要に応じてBIOSメモリ(例えば、NVRAM)に容易にコピーできるように、同じ形式でBMCメモリに保存することができる。
【0017】
BIOSは、現在のBIOSコンフィギュレーションを有することができ、現在のBIOSコンフィギュレーションは、BIOSメモリ(例えば、NVRAM)に現在保存されているBIOSコンフィギュレーション値のセットである。コンピュータシステムのブート中、BIOSは、現在のBIOSコンフィギュレーションにアクセスして、コンピュータシステムをどのように起動するかを決定する。現在のBIOSコンフィギュレーションを変更したい場合、BIOSセットアップユーティリティを起動させ(launched)、個別のBIOSコンフィギュレーション値を変更するとともに、それらを新しい現在のBIOSコンフィギュレーションとしてBIOSメモリ(例えば、NVRAMの一部を上書きする)に保存するためのオプションをユーザーに提供することができる。
【0018】
BIOSは、コンピュータシステム上で実行して、コンピュータシステムを起動する。コンピュータシステムは、特定のハードウェアコンフィギュレーションを有することができる。ハードウェアコンフィギュレーションは、コンピュータシステム(例えば、マザーボード、メモリ、グラフィックプロセシングユニット、プロセッサ、周辺装置(例えば、ユーザー入力装置(例えば、キーボード、マウス及びタッチスクリーン)、ネットワークインターフェース等))を構成するハードウェアコンポーネントの集合を有する。BIOS要求及びパフォーマンスは、所定のハードウェアコンフィギュレーションに基づくので、場合によっては、本発明の特定の態様及び特徴は、複数の異なるハードウェアコンフィギュレーション間で、同じパフォーマンスモードに対してユニークなBIOSコンフィギュレーションが生成されるのを許可する。
【0019】
ここで使用されるパフォーマンスモードという用語は、関連するBIOSコンフィギュレーションの目的又は説明(例えば、関連するBIOSコンフィギュレーションにおいて最適化される一つ以上のパフォーマンスパラメータの指標等)を示すことを意図する。例えば、ブート速度を最適化するように設計されたBIOSコンフィギュレーションは、「ブート速度パフォーマンスモード」BIOSコンフィギュレーションであると識別される。このような場合、パフォーマンスモードは「ブート速度」である。別の例において、電源使用量を最適化(例えば、最小化)するように設計されたBIOSコンフィギュレーションは、「節電パフォーマンスモード」BIOSコンフィギュレーションであると識別される。このような場合において、パフォーマンスモードは「節電」である。他のパフォーマンスモードも用いられる。場合によっては、パフォーマンスモードは、任意の単一のパフォーマンスパラメータ又はパフォーマンスパラメータの組み合わせを最適化するのではなく、所望の結果を達成するために選択されることがある。
【0020】
ここで使用されるパフォーマンスパラメータという用語は、値が一つ以上のBIOS設定に何等かの形で依存する、測定可能(例えば、客観的に測定可能、又は、場合によっては、主観的に測定可能)な任意のパラメータを有することを意図している。パフォーマンスパラメータは、コンピュータシステムの要求に基づいて、様々な状況下で最適化されると見なされる。一般的に、パフォーマンスパラメータは、異なるBIOSコンフィギュレーション間で比較された場合に最適化されたと判断されるが、場合によっては、パフォーマンスパラメータは、それ自体で最適化されたと見なすことができる。場合によっては、パフォーマンスパラメータは、所定の閾値を満たすか超えた場合に最適化されたと見なされる。場合によっては、パフォーマンスパラメータは、(例えば、異なるBIOSコンフィギュレーション値を有する他の反復(iteration)と比較して)最大値又は最小値に達した場合に、最適化されたと見なされる。場合によっては、パフォーマンスパラメータは、所定値に達した場合、所定値に近い所定範囲内にある場合、又は、所定値に最も近づいた場合(例えば、異なるBIOSコンフィギュレーション値を有する他の反復(iteration)と比較して)、最適化されたと見なされる。
【0021】
本発明の特定の態様によれば、BIOSコンフィギュレーションのデータベースが生成され、且つ、維持される。データベースは、複数のパフォーマンスモードに関連するエントリーを含み、オプションで、各パフォーマンスモード及びハードウェアコンフィギュレーション組み合わせに関連するユニークなエントリーを含む。一つ以上のBIOSコンフィギュレーションは、例えばベースボードマネジメントコントローラー(BMC)を介して、コンピュータシステムに提供される。ここでさらに詳細に開示するように、BIOSコンフィギュレーションは、その後、後で使用するために、BMCメモリに保存される。場合によっては、各BIOSコンフィギュレーションは、現在のBIOSコンフィギュレーションとして用いられる場合にNVRAMにおいて使用されるフォーマットと同じフォーマットで保存され得る。よって、現在のBIOSコンフィギュレーションをパフォーマンスモードBIOSコンフィギュレーションに切り換えるプロセスは、BIOSコンフィギュレーションで、BIOSメモリ(例えば、NVRAM)をオーバーライド又は上書きすることを含む。場合によっては、パフォーマンスモードBIOSコンフィギュレーションは、任意の所定のBIOSに利用可能な全てのBIOSコンフィギュレーションよりも少ないBISOコンフィギュレーションを含むことができる。この場合、パフォーマンスモードBIOSコンフィギュレーションを実施する際に、パフォーマンスモードBIOSコンフィギュレーションに保存されているBIOSコンフィギュレーションのみがオーバーライド、上書き又は更新される。
【0022】
BIOSコンフィギュレーションのデータベースは、事前入力され(pre-populated)、又は、オンデマンドで生成される。データベース内の新しいBIOSコンフィギュレーションエントリーの生成は、一つ以上のパフォーマンスパラメータの特定のセットに対してBIOSコンフィギュレーションを生成する工程を含む。パフォーマンスパラメータのセットから、任意のパフォーマンスパラメータのセットに影響することが知られている又は疑いがあるBIOSコンフィギュレーションが識別されるとともに、それらのBIOSコンフィギュレーションの値のユニークな組み合わせが決定され、よって、ユニークな、可能なBIOSコンフィギュレーションのセットが生成される。これらのユニークな、可能なBIOSコンフィギュレーションがテストされ(例えば、仮想的又は物理的に)、結果として得られるパフォーマンスパラメータが測定及び分析されて、可能なBIOSコンフィギュレーションのうち何れが最適であると見なされるかを決定する。場合によっては、可能なBIOSコンフィギュレーションのうち単一のBIOSコンフィギュレーションのみが最適であると見なされる。しかし、場合によっては、複数の可能なBIOSコンフィギュレーションが最適であると見なされ、この場合、一つ以上の追加のパフォーマンスパラメータを用いて、複数の最適なBIOSコンフィギュレーションを区分するとともに、一つの所望のBIOSコンフィギュレーションを識別する。一旦、単一の最適な又は所望のBIOSコンフィギュレーションが識別されると、最適な又は所望のBIOSコンフィギュレーションは、このコンフィギュレーションを生成するのに用いられるパフォーマンスパラメータと関連付けて保存され、場合によっては、名称(例えば、パフォーマンスモード)と関連付けて保存される。
【0023】
BIOSコンフィギュレーションのテストは、仮想的又は物理的に発生する。仮想テストは、バーチャルマシン(virtual machine)を用いてブートプロセスをシミュレーションすることを含む。物理テストは、物理的な機械を用いてブートプロセスを実行することを含む。場合によっては、物理テストは、制御された方法で実行される。例えば、制御された方法は、データベースプロバイダが、自身の物理的な機械を用いて、複数の異なるBIOSコンフィギュレーションのパフォーマンスパラメータデータを積極的に収集することを試みる。場合によっては、物理テストは、ライブシステム上で実行される。例えば、ライブシステムを操作するユーザーが、一つ以上のBIOSコンフィギュレーションを変更し、それら自身のパフォーマンスパラメータデータを収集することを決定した場合等に、物理テストがライブシステム上で実行される。このような場合、ライブユーザーは、このようなパフォーマンスパラメータデータ及びBIOSコンフィギュレーションをデータベースプロバイダに提供することを選択することができる。
【0024】
所定のハードウェアコンフィギュレーションに適した様々なBIOSコンフィギュレーションは、一緒にパッケージ化され、コンピュータシステムに転送され得る。場合によっては、一つ以上のBIOSコンフィギュレーションは、コンフィギュレーションペイロードとして一緒にパッケージ化され、関連するBIOSファームウェアの配置(distribution)に含まれる。例えば、コンピュータシステムのセットに関するBIOSファームウェアを配置するベンダーは、パフォーマンスモードBIOSコンフィギュレーションのセットを有し、パフォーマンスモードBIOSコンフィギュレーションのセットは、バイナリーファイルであり、ファームウェアイメージの一部となる。コンピュータシステムのBMCに転送されると、パフォーマンスモードBIOSコンフィギュレーションは、BMCメモリ(例えば、BMCにアクセス可能なメモリ)に保存される。その後、BIOSセットアップユーティリティが次にロードされると、BIOSセットアップユーティリティは、BMCメモリをスキャンして、任意の利用可能なパフォーマンスモードBIOSコンフィギュレーションを識別するとともに、各パフォーマンスモードBIOSコンフィギュレーションを、利用可能なコンフィギュレーションプリセットとして表示する。ユーザーが、使用するコンフィギュレーションプリセットのうち一つを選択すると、システムは、現在のBIOSコンフィギュレーションをBMCメモリに保存した後に、オプションで、関連するパフォーマンスモードBIOSコンフィギュレーションをBIOSメモリ(例えば、NVRAM)に自動的にオーバーライド、上書き又はコピーし、システムをリブートする。システムが適切に起動しない場合、BMCメモリに保存された現在のBIOSコンフィギュレーションを用いて、BIOSメモリを、パフォーマンスモードBIOSコンフィギュレーションを実施する前の状態に戻し、これにより、システムが、故障後に、適切に起動できるようにする。
【0025】
本発明の特定の態様及び特徴は、ユーザーが、パフォーマンスモードBIOSコンフィギュレーションと同様の方法で、以前に試みた、及び/又は、以前に保存したBIOSコンフィギュレーションをBMCメモリに保存することをさらに許可する。
【0026】
本発明の特定の態様及び特徴は、ユーザーが、手元のタスクに基づいて、最適化された異なるBIOSコンフィギュレーション間を容易に切り換えることを許可することにより、ブート手順中にコンピュータシステムがどのように機能するかを改善することにおいて、特に有用である。例えば、ユーザーが、大量のコンピュータデバイス上にオペレーティングシステムをインストールする必要がある場合、オペレーティングシステムをインストールするのにかかる時間を最小化するように最適化されたBIOSコンフィギュレーションをロードすることにより、かなりの時間を節約することができる。しかし、そのBIOSコンフィギュレーションは、別の目的には最適でない場合があるので(例えば、電源使用量やブート時間を最適化しない)、ユーザーは、オペレーティングシステムがインストールされた後に、別のBIOSコンフィギュレーションを迅速に選択することを希望する場合がある。
【0027】
さらに、本発明の特定の態様及び特徴は、述べられたニーズに基づいて(例えば、パフォーマンスパラメータ)、このような最適化されたBIOSコンフィギュレーションが、系統的に生成され、迅速且つ容易に配置されるのを可能にし得る。場合によっては、本発明の特定の態様及び特徴は、コンピュータシステム(例えば、コンピュータシステムのBMC)が、必要に応じてサーバからBIOSコンフィギュレーションを動的に要求することを許可し、これにより、常に、最近且つ最新のパフォーマンスモードBIOSコンフィギュレーションを用いることを容易にすることができる。
【0028】
これらの例示的な説明は、ここで開示される主題を読者に提供するものであり、本発明の概念の範囲を限定することを意図しない。以下の段落は、図面を参照して、様々な追加の特徴及び例を説明し、図面において、同様の符号は同様の素子を示す。方向性のある記述を用いて実施形態を説明しているが、本発明を限定するために用いられるべきではない。図面は、必ずしも縮尺通りに描かれていない。
【0029】
図1は、本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを生成し、配置し、及び/又は、使用するコンピュータ環境100を示すブロック図である。コンピュータ環境100は、コンピュータシステム116と、オプションで、ネットワーク114及びサーバ102と、を有する。ここで用いられるように、コンピュータシステム116及びサーバ102は、任意の適切なコンピュータデバイス(例えば、パーソナルホームコンピュータ、サーバーコンピュータ、組み込みコンピュータシステム、又は、任意の他のコンピュータデバイス)である。コンピュータシステム116及びサーバ102は、ネットワーク114(例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、インターネット、クラウドネットワーク等)によって通信可能に結合されるが、必ずしもそうである必要はない。場合によっては、他の任意のコンピュータデバイス(例えば、分析システム122又はマネジメントシステム128)が用いられる。
【0030】
コンピュータシステム116は、BIOSファームウェアを用いたユーザー操作のコンピュータシステムである。コンピュータシステム116は、BIOSメモリ124(例えば、NVRAM)を有し、BIOSメモリ124は、BIOSコンフィギュレーションのBIOSコンフィギュレーション値を保存するのに用いられる。さらに、コンピュータシステム116は、コンピュータシステム116の管理を容易にするのに用いられるBMC126を有する。BMC126は、BIOSメモリ124とは別のそれ自身の専用のBMCメモリ130を有する。いくつかの代替例では、BMCメモリ130及びBIOSメモリ124は、同じ物理メモリ内の論理的に別々の位置にある。
【0031】
オプションのマネジメントシステム128は、BMC126への接続を介してコンピュータシステム116の管理を容易にするために用いられる。例えば、BMC126は、ネットワーク接続を介してBMCユーザーインターフェースを提供することができ、ネットワーク接続は、マネジメントシステム128によりアクセスされる。このような場合、マネジメントシステム128は、任意の数量のコンピュータシステム116(例えば、複数のマルチラックを有するサーバファーム)を管理し、任意の数量のコンピュータシステム116の各々は、複数のコンピュータシステム116(例えば、同じ又は異なるハードウェアコンフィギュレーションを有する)を含む。ここで開示されるように、マネジメントシステム128は、コンフィギュレーションペイロード110の伝送を制御するとともに、BMC126を制御して、パフォーマンスモードコンフィギュレーションを実行するために用いられる。
【0032】
サーバ102は、任意の適切なコンピュータデバイス又はコンピュータデバイスの集合である。サーバ102は、複数のモジュール(例えば、設定分析モジュール118及びファームウェア生成モジュール120)を提供することができる。ここで使用されるモジュールという用語は、ハードウェア及び/又はソフトウェアの集合を含み、ハードウェア及び/又はソフトウェアの集合は、特定のタスク(例えば、パフォーマンスパラメータデータを分析する又はファームウェアパッケージを生成する等)を実行するように構成されている。
【0033】
設定分析モジュール118は、例えば、ネットワーク114を介して、別の分析システム122から又はサーバ102自身から(例えば、サーバ102が、バーチャルマシンを実行することにより、パフォーマンスパラメータデータを得る場合)、パフォーマンスパラメータデータを受信することができる。分析システム122が用いられる場合、分析システム122は、特定のハードウェアコンフィギュレーションを備える物理コンピュータデバイスであり、特定のハードウェアコンフィギュレーションは、パフォーマンスモードBIOSコンフィギュレーションを必要とする。或いは、分析システム122は、汎用コンピュータデバイスであり、汎用コンピュータデバイスは、バーチャルマシンを実行することによりパフォーマンスパラメータデータを得ることができる。いくつかの場合において、設定分析モジュール118は、
i)異なるBIOSコンフィギュレーション値の組み合わせ(例えば、テストのための異なるBIOSコンフィギュレーション)を生成する場合に、何れの異なるBIOSコンフィギュレーションが用いられるかを決定するのを助けることができる。
ii)パフォーマンスパラメータデータの捕捉を開始することができる。
iii)捕捉されたパフォーマンスパラメータデータを受信することができる。
iv)パフォーマンスパラメータデータを分析して、一つ以上の最適なBIOSコンフィギュレーションを決定することができる。
v)データベース(例えば、データベース104)内に、最適なBIOSコンフィギュレーションを保存することができる。或いは、
vi)i~vの任意の組み合わせ、を実行する。
【0034】
サーバ102は、データベース104を製造、修正及び/又はアクセスするのに用いられる。データベース104は、任意の適切な形式で保存され、例えば、サーバ102のメモリ内又は外部に保存される。データベース104は、複数のBIOSコンフィギュレーションエントリー106を含む。各BIOSコンフィギュレーションエントリー106は、パフォーマンスモードBIOSコンフィギュレーション、及び、オプションで、付随する関連データを有する。付随する関連データは、ユニークな識別子、パフォーマンスモードBIOSコンフィギュレーションと関連するハードウェアコンフィギュレーション情報、パフォーマンスモードBIOSコンフィギュレーションと関連するパフォーマンスモード情報(例えば、パフォーマンスモード名若しくは識別子)、及び/又は、パフォーマンスモードBIOSコンフィギュレーションに関連するパフォーマンスパラメータ情報(例えば、関連するコンフィギュレーションにより最適化される任意のパフォーマンスパラメータのリスト)である。BIOSコンフィギュレーションエントリー106を参照して説明しているが、同じ情報を、他の形式でデータベース104に保存することができる。例えば、単一のBIOSコンフィギュレーションは、複数の異なるパフォーマンスモード、ハードウェアコンフィギュレーション、又は、パフォーマンスモードとハードウェアコンフィギュレーションの組み合わせと関連付けることができる。別の例において、単一のパフォーマンスモードは、複数の可能なBIOSコンフィギュレーションと関連付けることができる。
【0035】
サーバ102は、ファームウェア生成モジュール120を有し、ファームウェア生成モジュール120は、一つ以上のBIOSコンフィギュレーションをコンフィギュレーションペイロード110にパッケージするのを容易にすることができ、コンフィギュレーションペイロード110は、コンピュータシステム116のBMC126に伝送される。コンフィギュレーションペイロード110は、単独で提供される(例えば、ネットワーク114又はリムーバブルストレージデバイスを介して)、或いは、ファームウェアパッケージ108にパッケージされる。ファームウェアパッケージ108は、コンフィギュレーションペイロード110と、任意の必要なファームウェアデータ112と、を含む。ファームウェアパッケージ108は、BMC126に送られるとともに、BMCメモリ130に保存される。よって、コンフィギュレーションペイロード110は、任意のBIOSコンフィギュレーションがその中にパッケージされ、BMCメモリ130に保存されるのを許可し、ファームウェアデータ112は、(例えば、コードをBIOSメモリ124に保存することにより)BIOSファームウェアをプログラム及び/又はアップデートするために用いられる。
【0036】
実際、ユーザーは、コンピュータシステム116自身を介して、又は、別々のマネジメントシステム128を介して、BIOSセットアップユーティリティにアクセスすることができる。BIOSセットアップユーティリティは、BMCメモリ130に存在する利用可能なBIOSコンフィギュレーションを表示するとともに、ユーザーが使用するために一つを選択するのを許可する。その後、BIOSセットアップユーティリティは、選択されたBIOSコンフィギュレーションをBIOSメモリ124に複製させ(例えば、BIOSメモリ124に以前に保存された現在のBIOSコンフィギュレーションの一部を上書きすることにより)、任意に、現在のBIOSコンフィギュレーションをBMCメモリ130に保存した後に、さらに、選択されたBIOSコンフィギュレーションをBIOSメモリ124に複製して、将来の必要な時に使用する。その後、コンピュータシステム116が再開され、その後、選択されたBIOSコンフィギュレーションを用いて起動する。
【0037】
特定の構成要素で説明しているが、コンピュータ環境100は、場合によっては、より多くの構成要素又はより少ない構成要素を含むことができる。さらに、場合によっては、コンピュータ環境100の様々な構成要素は、適宜、結合された構成要素に統合されるか、複数の構成要素に分離され得る。
【0038】
図2は、本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを生成するプロセス200を示すフローチャートである。プロセス200は、任意の適切なコンピュータシステム(例えば、
図1のサーバ102)により実行される。
【0039】
ブロック202において、一つ以上のパフォーマンスパラメータが受信される。受信されたパフォーマンスパラメータは、最適化が望まれる一つ以上のパフォーマンスパラメータのリストである。受信されたパフォーマンスパラメータは、顧客の要求、特定のパラメータを最適化するサプライヤーの要望、及び、任意の他の適切な情報に基づいている。ある場合において、ブロック202では、パフォーマンスパラメータを受信することに加えて、ハードウェアコンフィギュレーションが受信される。ハードウェアコンフィギュレーションは、最適化されるBIOSが動作することになるハードウェアの所定のコンフィグレーションである。場合によっては、ブロック202では、BIOSによってインストールされる特定のソフトウェアの情報や維持される特定の制限(例えば、閾値ワット数以上の電力を使用しない)等の追加情報が受信される。
【0040】
一例において、サプライヤーは、特定のオペレーティングシステム(OS)をインストールするのにかかる時間を最小にするパフォーマンスモードBIOSコンフィギュレーションを提供することを希望する場合があり、この場合、パフォーマンスパラメータは「OSインストール時間」であってもよく、最小値である場合に最適であると見なされる。他のパフォーマンスパラメータの例は、ブート時間、電源使用量、熱発生等を有する。
【0041】
ブロック204において、ブロック202からのパフォーマンスパラメータに関連するBIOSコンフィギュレーションが識別される。BIOSコンフィギュレーションの値の変更がパフォーマンスパラメータに影響する場合、BIOSコンフィギュレーションは、パフォーマンスパラメータに関連付けられる。BIOSコンフィギュレーションを識別することは、パフォーマンスパラメータと関連すると知られている既知のBIOSコンフィギュレーションのリストにアクセスする工程を有する。ある場合において、BIOSコンフィギュレーションを識別することは、一つ以上のBIOSコンフィギュレーションがパフォーマンスパラメータに影響すると予測する工程を有する。ある場合において、ブロック204では、BIOSコンフィギュレーションの標準セット(standard set)が用いられる。ある場合において、ブロック204で用いられるBIOSコンフィギュレーションのセットは、ブロック202で、パフォーマンスパラメータを受信することの一部として受信される(例えば、顧客が、パフォーマンスモードBIOSコンフィギュレーションを生成する際に変更可能な設定を制限することを希望する場合)。
【0042】
ブロック206において、識別されたBIOSコンフィギュレーションの値のユニークな、且つ、可能なコンフィギュレーションが識別される。ユニークな、且つ、可能なコンフィギュレーションの各々は、ユニークなBIOSコンフィギュレーション値のセットであり、ユニークなBIOSコンフィギュレーション値は、ブロック204から識別されたBIOSコンフィギュレーション値である。例えば、第一BIOSコンフィギュレーションは、二個の可能な値を有し、第二BIOSコンフィギュレーションは、三個の可能な値を有し、ユニークな、且つ、可能なコンフィギュレーションの総数は6である。ブロック204で、第三BIOSコンフィギュレーションが5個の可能な値を有することも識別される場合、ユニークな、且つ、可能なコンフィギュレーションの総数は30である。ある場合において、ユニークな、且つ、可能なコンフィギュレーションの各々が、ブロック206で識別されるとともに、その後用いられるが、常にそうである必要はない。ある場合において、全てのユニークな、且つ、可能なコンフィギュレーションのサブセットのみが識別及び/又は用いられる。
【0043】
値のユニークな、且つ、可能なコンフィギュレーションを決定する場合、所定のBIOSコンフィギュレーションのユニークな、且つ、可能な値の数量は、それ自身を設定することにより定義されてもよいし(例えば、バイナリ設定は、真(true)又は偽値(false value)のみを有する)、BIOSコンフィギュレーションに利用可能な範囲であってもよいし(例えば、最低数と最高数との間の範囲)、又は、それ以外で提供されてもよい。ある場合において、所定のBIOSコンフィギュレーションが大量の可能な値を有する場合、値のユニークな、且つ、可能なコンフィギュレーションの決定は、全ての可能な値のサブセットを選択する工程を有する。例えば、BIOSコンフィギュレーションが、0~100の任意の整数の値を有する場合、このような範囲のサブセットは、値0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、及び、100を有する。
【0044】
ブロック208において、ブロック206で識別されたユニークな、且つ、可能なコンフィギュレーションの各々に対し、ブロック202から識別されたパフォーマンスパラメータが分析される。パフォーマンスパラメータを分析することは、パフォーマンスパラメータの測定値を取得する工程を有する。例えば、ブート時間であるパフォーマンスパラメータを分析することは、ブート開始からブート完了までの間の時間を計算する工程を有する。測定されたパフォーマンスパラメータは、パフォーマンスパラメータデータとして知られる。
【0045】
ある場合において、ブロック210において、一つ以上のバーチャルコンピュータシステム(例えば、バーチャルマシン)を用いて、パフォーマンスパラメータが分析される。一つ以上のバーチャルコンピュータシステムは、特定のハードウェア及び/又はソフトウェアコンフィギュレーションを有するように設定され、BIOSコンフィギュレーションのテスト及びパフォーマンスパラメータの測定を許可する。
【0046】
ある場合において、ブロック212で、一つ以上の物理コンピュータシステムを用いて、パフォーマンスパラメータが分析される。物理コンピュータシステムは、使用状況に適用するハードウェアコンフィギュレーションを有する。例えば、ブロック202で、特定のハードウェアコンフィギュレーションが受信される場合、同じハードウェアコンフィギュレーションが、ブロック212で用いられる物理コンピュータシステムを構築するために用いられる。
【0047】
ある場合において、ブロック214で、ライブコンピュータシステムから、パフォーマンスデータを受信することにより、パフォーマンスパラメータが分析される。このようなパフォーマンスデータは、ライブコンピュータシステムにより収集され、例えば、ライブコンピュータシステムは、顧客(例えば、ブロック202で、パフォーマンスパラメータを提供する顧客、及び/又は、パフォーマンスモードBIOSコンフィギュレーションの使用を計画するコンピュータシステムを用いる顧客)により操作されるコンピュータシステムである。ブロック241で、このようなライブパフォーマンスデータ及びライブパフォーマンスデータを生成するのに用いられるBIOSコンフィギュレーションに関連する情報を受信する。一旦受信されると、ライブパフォーマンスデータ及びその関連するBIOSコンフィギュレーションは、ブロック206からのユニークな、且つ、可能なコンフィギュレーションの一つと一致する。
【0048】
ある場合において、ユニークな、且つ、可能なコンフィギュレーションの各々に対し、パフォーマンスパラメータが順次分析される。しかし、ある場合において、複数のユニークな、且つ、可能なコンフィギュレーションに対し、パフォーマンスパラメータが同時に分析される。例えば、
i)一つ以上のバーチャルコンピュータシステム
ii)一つ以上の物理コンピュータシステム
iii)一つ以上のライブコンピュータシステム、或いは、
iv)i~iiiの任意の組み合わせ、が使用される。よって、パフォーマンスモードBIOSコンフィギュレーションを提供することを望むエンティティは、ユーザーがBIOSコンフィギュレーションを1つずつ手動で調整し、単一のコンピュータシステムで結果を測定しようとするよりも速い速度で、より多くのユニークなBIOSコンフィギュレーションを分析することができる。
【0049】
ブロック208の出力は、分析データとして知られる。分析データは、ブロック206からのユニークな、且つ、可能なコンフィギュレーションの各々の測定されたパフォーマンスパラメーを有するが、常にそうである必要はない。ある場合において、分析データは、測定されたパフォーマンスパラメータに基づいて選択された一つ以上の一番性能の良い(top-performing)、ユニークな、且つ、可能なコンフィギュレーションである。
【0050】
ブロック216において、選択されたコンフィギュレーションは、ブロック208からの分析データを用いて決定される。選択されたコンフィギュレーションを決定することは、ブロック208で分析された測定されたパフォーマンスパラメータに基づいて、ブロック206からのユニークな、且つ、可能なコンフィギュレーションの各々をランク付けする工程を有する。一旦、ランキングが構築されると、選択されたコンフィギュレーションは、ランキング中で一番性能の良いコンフィギュレーションである。例えば、ブート時間が、最適化されるパフォーマンスパラメータである場合、ユニークな、且つ、可能なコンフィギュレーションの全てのランキングは、単一の特定のコンフィギュレーションが他のどのコンフィギュレーションよりも低いブート時間を達成することを示し、この場合、特定のコンフィギュレーションは、選択されたコンフィギュレーションであると見なされる。ある場合において、ユーザー入力(例えば、ユーザーは、いくつかの適切なコンフィギュレーションから一つを選択する)に少なくとも部分的に基づいて、選択されたコンフィギュレーションが決定される。ある場合において、デフォルトBIOSコンフィギュレーションから変更されたBIOSコンフィギュレーションの数量及び/又はタイプ(例えば、二個の適切なコンフィギュレーションのうち、BIOSコンフィギュレーションの変更がより少ない方が、選択されたコンフィギュレーションとして用いられる)に少なくとも部分的に基づいて、選択されたコンフィギュレーションが決定される。
【0051】
ブロック218において、ブロック216で選択されたコンフィギュレーションは、ブロック202からのパフォーマンスパラメータと関連付けられ、例えば、データベース(例えば、
図1のデータベース104)に保存される。よって、選択されたコンフィギュレーションは、ブロック202からのパフォーマンスパラメータと関連する特定のパフォーマンスモードに用いられるパフォーマンスモードBIOSコンフィギュレーションとして保存される。ブロック218で選択されたコンフィギュレーションを保存することは、選択されたコンフィギュレーションを、保存フォーマットで保存する工程を有し、この保存フォーマットは、選択されたコンフィギュレーションが、選択されたコンフィギュレーションを実行するコンピュータシステムのNVRAMに出現するフォーマットであるが、必ずしもそうである必要はない。しかし、この同じフォーマットで保存することは、受信コンピュータシステム(receiving computing system)上での後続の実施を容易にする。ある場合において、選択されたコンフィギュレーションを保存することは、ハードウェアコンフィギュレーション(例えば、ブロック202で受信されたハードウェアコンフィギュレーション)と関連する選択されたコンフィギュレーションを保存する工程をさらに有する。ある場合において、選択されたコンフィギュレーションを保存することは、パフォーマンスモード識別子(例えば、パフォーマンスモードを示す名称又はユニークな識別子(例えば、「ブート時間パフォーマンスモード」))を決定するとともに、そのパフォーマンスモード識別子と関連する選択されたコンフィギュレーションを保存する工程をさらに有する。
【0052】
任意のブロック220において、選択されたコンフィギュレーション(例えば、パフォーマンスモードBIOSコンフィギュレーション)は、コンフィギュレーションペイロードにパッケージされ、コンフィギュレーションペイロードは、その後、受信コンピュータシステムに送信される。任意で、コンフィギュレーションペイロードは、選択されたコンフィギュレーション以外の追加のコンフィギュレーションを有する。例えば、コンフィギュレーションペイロードは、
i)特定のパフォーマンスモードBIOSコンフィギュレーション、
ii)その特定のパフォーマンスモードBIOSコンフィギュレーションの代替バージョン(例えば、パフォーマンスモードBIOSコンフィギュレーションと同じ、又は、同様の結果を達成する若干異なるBIOSコンフィギュレーション)、
iii)他のパフォーマンスモードBIOSコンフィギュレーション(例えば、特定のパフォーマンスモードと異なる他のパフォーマンスモードのBIOSコンフィギュレーション)、或いは、
iv)i~iiiの任意の組み合わせ、を有する。一旦、受信コンピュータシステムに送信されると、コンフィギュレーションペイロードは、BMCメモリに保存される。ある場合において、コンフィギュレーションペイロードは、BIOSコードと一緒にBIOSファームウェアファイルにパッケージされる。
【0053】
特定のブロックを特定の順序で説明しているが、ある場合において、プロセス200は、より少ないブロック、より多いブロック、及び/又は、異なる順序のブロックで実行されてもよい。
【0054】
図3は、本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを表示及び実施するプロセス300のフローチャートである。プロセス300は、任意の適切なコンピュータシステム(例えば、
図1のコンピュータシステム116(及び、任意で、
図1のマネジメントシステム128))により実行される。例えば、プロセス300は、コンピュータシステムのBMCにより実行され、BMCは、コンピュータシステム又は別のマネジメントシステムによりアクセスされる。
【0055】
ブロック302において、BMCメモリがアクセスされる。ブロック304において、BMCメモリがスキャンされて、その中に存在するBIOSコンフィギュレーション(例えば、パフォーマンスモードBIOSコンフィギュレーション又はユーザー構成のBIOSコンフィギュレーション)を識別する(ある場合において、ユーザー構成のBIOSコンフィギュレーションは、パフォーマンスモードBIOSコンフィギュレーションと見なすことができる)。
【0056】
ブロック306において、BIOSセットアップユーティリティが提示される。BIOSセットアップユーティリティを提示することは、例えば、ディスプレイデバイスを介して、BIOS設定オプション(例えば、変更されるBIOSコンフィギュレーション)を提示する工程を有する。ブロック306の一部として、ブロック304で識別されるコンフィギュレーションは、ブロック308で、BIOSセットアップユーティリティの一部として提示される。BIOSコンフィギュレーションは、コンフィギュレーションプリセットとして提示される。BIOSコンフィギュレーションのコンフィギュレーションプリセットとして提示することは、
i)BIOSコンフィギュレーションに関連する名称、又は、その他の識別子を提示すること。
ii)BIOSコンフィギュレーションと関連する一つ以上のパフォーマンスパラメータを提示すること。
iii)BIOSコンフィギュレーションに関連する一つ以上のBIOSコンフィギュレーション、及び/又は、BIOSコンフィギュレーション値を提示すること。或いは、
iv)i~iiiの任意の組み合わせ、を有する。
【0057】
ある任意の場合において、ブロック310で、ユーザー構成のBIOSコンフィギュレーションが生成される。ブロック310で、ユーザー構成のBIOSコンフィギュレーションを生成する工程は、先ず、ユーザーが、一つ以上のBIOSコンフィギュレーション値を変更することを許可し、その後、そのときのBIOSコンフィギュレーション値をユーザー構成BIOSコンフィギュレーションとして保存するためのユーザー入力を受信する工程を有する。ブロック310で、ユーザー構成BIOSコンフィギュレーションを保存するためのユーザー入力を受信することに応じて、ブロック312で、ユーザー構成BIOSコンフィギュレーションがBMCメモリに保存される。ユーザー構成BIOSコンフィギュレーションは、パフォーマンスモードBIOSコンフィギュレーションと同様の方式で保存される。ある場合において、ブロック310で、ユーザー構成BIOSコンフィギュレーションを生成する工程は、自動的に発生し、特定のユーザー入力でユーザー構成BIOSコンフィギュレーションを保存する必要がない。このような場合、ユーザーが、BIOSコンフィギュレーション値を変更し、且つ、それらの値を保存して(例えば、BIOSメモリに)、それらの値を用いてシステムをブートするときはいつでも、BIOSセットアップユーティリティは、BIOSコンフィギュレーション値を自動ユーザー構成BIOSコンフィギュレーションとして自動的に保存する。例えば、自動ユーザー構成BIOSコンフィギュレーションがブロック308で提示されるとき、その構成は、特定の日時/時間(例えば、「2021-12-01-16:03:44」からのコンフィグレーション)で用いられるコンフィグレーションとして提示される。ある場合において、ユーザーは、カスタム名(custom name)を提供するとともに、カスタム名は、手動又は自動的に保存されたユーザー構成BIOSコンフィギュレーションと関連付けて保存される。
【0058】
ブロック314において、特定のコンフィギュレーションプリセットを選択するためにユーザー選択が受信され、これにより、特定のBIOSコンフィギュレーションを選択する。一旦、選択されると、選択されたコンフィギュレーションプリセット(例えば、選択されたBIOSコンフィギュレーション)が、ブロック316で実施される。コンフィギュレーションプリセットを実施することは、BIOSコンフィギュレーション値を調整して、選択されたBIOSコンフィギュレーションのBIOSコンフィギュレーション値と一致させる工程を有する。ある場合において、BIOSコンフィギュレーション値を調整することは、具体的には、BMCメモリから、選択されたBIOSコンフィギュレーションに関連するNVRAMフォーマット済みデータを取り出すとともに、データを用いてコンピュータシステムのNVRAM(例えば、BIOSメモリ)を変更する工程を有する。
【0059】
ある場合において、ブロック316において、コンフィギュレーションプリセットを実施することは、ブロック318において、現在のBIOSコンフィギュレーションをBMCメモリに複製する工程を有する。現在のBIOSコンフィギュレーションのBMCメモリへの複製は、例えば、ユーザーが手動でBIOSコンフィギュレーション値に戻すことを希望する場合、或いは、コンピュータシステムが適切にブートしない場合、コンピュータシステムに、現在のBIOSコンフィギュレーションに戻させる。ブロック320において、BIOSメモリ(例えば、NVRAM)は、選択されたコンフィギュレーションでオーバーライドされる。選択されたコンフィギュレーションでBIOSメモリをオーバーライドすることは、選択されたBIOSコンフィギュレーションをBMCメモリからBIOSメモリに複製する工程、上書きする工程、又は、転送する工程を有する。その後、ブロック322において、コンピュータシステムが起動され、よって、コンピュータシステムが、BIOSメモリに位置する選択されたBIOSコンフィギュレーションを用いて、起動することが可能になる。
【0060】
ある任意の場合において、ブロック324で、選択されたコンフィギュレーションペイロードにより、失敗が検出される。失敗を検出することは、ブートプロセスが適切に完了していない(例えば、所定のタイムアウト時間後にブートプロセスが完了していない、或いは、特定の必要なハードウェア又はソフトウェア要素が適切にロードされていない)ことを検出する工程を有する。失敗が検出されると、BMCは、BMCメモリに保存されたBIOSコンフィギュレーション(例えば、デフォルトBIOSコンフィギュレーション、或いは、以前に用いられたBIOSコンフィギュレーション(例えば、ブロック318からの「現在」のBIOSコンフィギュレーション、現在のBIOSコンフィギュレーションは、直前のBIOSコンフィギュレーションである))に自動的に戻す。
【0061】
特定のブロックを特定の順序で説明しているが、ある場合において、プロセス300は、より少ないブロック、より多いブロック、及び/又は、異なる順序のブロックで実行されてもよい。例えば、ある場合において、ブロック320と304は、単一のブロックで実行される。別の例において、ある場合において、ブロック320と304は、ブロック306の一部として実行される。別の例において、プロセス300は、ブロック302の前のブロックから開始され、BMCは、サーバにアクセスして、一つ以上のBIOSコンフィギュレーションをダウンロードするとともに、このBIOSコンフィギュレーションは、その後、ブロック320と304でのその後のアクセスのために、BMCメモリに保存される。
【0062】
図4は、本発明の特定の態様による、パフォーマンスモードBIOSコンフィギュレーションを共有及び実施するプロセス400を示すマルチシステムのフローチャートである。プロセス400は、任意の適切なコンピュータシステム(例えば、コンピュータシステム430及びサーバ432(例えば、
図1のコンピュータシステム116及びサーバ102))により実行される。単一の装置を参照して説明しているが、コンピュータシステム430に起因するプロセス400の一部、及び、サーバ432に起因するプロセス400の一部は、それぞれ、二個以上のコンピュータシステム及び二個以上のサーバにより実行される。
【0063】
ブロック402において、性能要求(および、任意で、ハードウェアコンフィギュレーション情報)が、サーバ432(任意に、コンピュータシステム430により)に送信され、それらは、ブロック404で、サーバ432により受信される。ブロック404において、性能要求の受信後、サーバ432は、ブロック406で、受信された性能要求(及び、任意で、ハードウェアコンフィギュレーション情報)に基づいて、所望のBIOSコンフィギュレーションの選択を開始する。所望のBIOSコンフィギュレーションを選択することは、パフォーマンスモードBIOSコンフィギュレーションのデータベースにアクセスして、ブロック404で受信された性能要求に適合する一つ以上のBIOSコンフィギュレーションを見つける(及び、任意で、ハードウェアコンフィギュレーション情報)工程を有する。ブロック408において、選択されたBIOSコンフィギュレーションは、コンフィギュレーションペイロードに準備される。ある場合において、コンフィギュレーションペイロードのフォーマットと、NVRAMに保存されるBIOSコンフィギュレーション値のフォーマットと、は同じである。ある場合において、コンフィギュレーションペイロードを準備することは、コンフィギュレーションペイロードとBIOSファームウェアを組み合わせる工程を有する。ブロック410で、コンフィギュレーションペイロードは、ユーザーのコンピュータデバイスに送信され、ブロック412で、コンピュータシステム430(例えば、コンピュータシステム430のBMC)により受信される。
【0064】
ブロック414において、コンフィギュレーションペイロード(例えば、一つ以上の選択されたBIOSコンフィギュレーション)が、BMCメモリに保存される。ブロック416において、BMCメモリがアクセスされて(例えば、BIOSセットアップユーティリティにより)、利用可能なBIOSコンフィギュレーションを識別し、その後、ブロック418において、セットアップメニュー(例えば、BIOSセットアップユーティリティのセットアップメニュー)で、ユニークなコンフィギュレーションプリセットとして提示される。ブロック420において、コンピュータシステム430は、選択を受信して(例えば、ユーザー入力により)、提示されたコンフィギュレーションプリセットの一つを用いる。その後、ブロック422で、この選択されたコンフィギュレーションプリセットが実施される。ブロック422での選択されたコンフィギュレーションプリセットを実施することは、選択されたコンフィギュレーションプリセットに関連するBIOSコンフィギュレーションを、BIOSメモリに複製するとともに、コンピュータシステム430を再起動して、BIOSが、選択されたBIOSコンフィギュレーションから、新しいBIOSコンフィギュレーション値を用いて実行されるようにする工程を有する。
【0065】
特定のブロックを特定の順序で説明しているが、ある場合において、プロセス400は、より少ないブロック、より多いブロック、及び/又は、異なる順序のブロックで実行されてもよい。
【0066】
図5は、本発明の特定の態様による、BIOSセットアップユーティリティの例示的なグラフィカルユーザーインターフェース(GUI)500を示す図である。GUI500は、コンピュータシステム(例えば、
図1のコンピュータシステム116)で実行されるBIOSセットアップユーティリティのGUIである。
【0067】
GUI500は、BIOSセットアップユーティリティウィンドウ502を表示することができる。BIOSセットアップユーティリティウィンドウ502の一部として、GUI500は、カスタマイズされたNVRAMデータ504、及び、保存されたNVRAMデータ510を提示する。
【0068】
カスタマイズされたNVRAMデータ504は、個別のパフォーマンスモードBIOSコンフィギュレーションプリセット(例えば、第一パフォーマンスモード506、及び、第二パフォーマンスモード508)が追加される。第一パフォーマンスモード506は、第一パフォーマンスモードBIOSコンフィギュレーション(例えば、「ブート時間最適化」パフォーマンスモードBIOSコンフィギュレーション)と関連し、第二パフォーマンスモード508は、第二パフォーマンスモードBIOSコンフィギュレーション(例えば、「OSインストール時間最適化」パフォーマンスモードBIOSコンフィギュレーション)と関連する。
【0069】
保存されたNVRAMデータ510は、以前に保存されたユーザー構成BIOSコンフィギュレーションが追加され、例えば、以前に保存されたユーザー構成BIOSコンフィギュレーションは、
図3のブロック310、312を参照して説明したようなユーザー構成BIOSコンフィギュレーションである。図示したように、保存されたNVRAMデータ510は、第一NVRAMデータ512、第二NVRAMデータ514、及び、第三NVRAMデータ516を有する。第一NVRAMデータ512は、2021年8月26日、15:51:30に最後に用いられたユーザー構成BIOSコンフィギュレーションである。第二NVRAMデータ514は、2021年8月30日、19:08:11に最後に用いられたユーザー構成BIOSコンフィギュレーションである。第三NVRAMデータ516は、ユーザーが、追加のユーザー構成BIOSコンフィギュレーションを保存するために用いることができるプレースホルダー(placeholder)である。
【0070】
図6は、本発明の特徴及びプロセスを実施する例示的なシステムアーキテクチャ600のブロック図であり、例えば、
図2~
図4を参照して提示される。システムアーキテクチャ600は、本発明の様々な特徴及びプロセスを実施するための任意の適切なコンピュータデバイス(例えば、サーバ、ワークステーション、タブレット、又は、他のこのような装置)を実装するために用いられる。システムアーキテクチャ600は、コンパイルされた命令から派生したソフトウェアアプリケーションを実行する任意の電子装置上に実装され得る。電子装置は、これらに制限されないが、パソコン、サーバ、スマートフォン、タブレット、家庭用ゲーム機、電子メール装置等を有する。いくつかの実施形態において、システムアーキテクチャ600は、一つ以上のプロセッサ602と、一つ以上の入力装置604と、一つ以上のディスプレイデバイス606と、一つ以上のネットワークインターフェース608と、一つ以上のコンピュータ可読媒体610と、を有する。これらのコンポーネントの各々は、バス612により結合される。
【0071】
ディスプレイデバイス606は、任意の既知のディスプレイ技術であり、これに制限されないが、液晶ディスプレイ(LCD)、又は、発光ダイオード(LED)技術を用いたディスプレイデバイスを有する。プロセッサ602は、任意の既知のプロセッサ技術を用いることができ、これに制限されないが、グラフィックプロセッサ、及び、マルチコアプロセッサを有する。入力装置604は、任意の既知の入力装置技術であり、これに制限されないが、キーボード(バーチャルキーボードを含む)、マウス、トラックボール(track ball)、及び、タッチ式パッド、又は、ディスプレイを有する。バス612は、任意の既知の内部又は外部バス技術であり、これに制限されないが、ISA、EISA、PCI、PCIExpress、NuBus、USB、シリアルATA、又は、FireWire(登録商標)を有する。
【0072】
コンピュータ可読媒体610は、命令をプロセッサ602に提供することに参加して実行する任意の媒体であり、これに制限されないが、不揮発性ストレージ媒体(例えば、光学ディスク、磁気ディスク、フラッシュドライブ等)、又は、揮発性媒体(例えば、SDRAM、ROM等)を有する。コンピュータ可読媒体(例えば、ストレージデバイス、媒体、及び、メモリ)は、例えば、ビットストリームを含むケーブル、又は、無線信号を有する。しかし、非一時的なコンピュータ可読ストレージ媒体に言及する場合、例えば、エネルギー、キャリア信号、電磁波、及び、信号自身のような媒体を明確に除外する。
【0073】
コンピュータ可読媒体610は、オペレーティングシステム614、及び、コンピュータプログラム等のアプリケーション620を実行するための様々な命令を含む。オペレーティングシステムは、マルチユーザー(multi-user)、マルチプロセシング(multiprocessing)、マルチタスキング(multitasking)、マルチスレッディング(multithreading)、リアルタイム(real-time)のシステム等である。オペレーティングシステム614は、基本タスクを実行し、これに制限されないが、入力装置604からの入力を識別すること、出力をディスプレイデバイス606に送信すること、コンピュータ可読媒体610上のファイル及びディレクトリを追跡すること、周辺装置(例えば、ディスクドライブ、プリンター等)の直接制御又はI/Oコントローラーによる制御、バス612上のトラフィックを管理することを有する。コンピュータ可読媒体610は、ファームウェアプロセス(例えば、BIOS)を実施するための様々な命令を有する。コンピュータ可読媒体610は、少なくとも
図2、
図3又は
図4のプロセス200、300又は400を有する、本明細書に記載した任意のプロセスを実施するための様々な命令を有する。
【0074】
メモリ618は、高速ランダムアクセスメモリ、及び/又は、不揮発性メモリ(例えば、一つ以上の磁気ディスクストレージデバイス、一つ以上の光学ストレージデバイス、及び/又は、フラッシュメモリ(例えば、NAND、NOR))を有する。メモリ618(例えば、コンピュータ可読ストレージデバイス、媒体、及び、メモリ)は、ビットストリーム等を含むケーブル又は無線信号を有する。しかし、非一時的なコンピュータ可読ストレージ媒体に言及する場合、例えば、エネルギー、キャリア信号、電磁波、及び、信号自身のような媒体を明確に除外する。メモリ618は、オペレーティングシステム(例えば、Darwin、RTXC、LINUX(登録商標)、UNIX(登録商標)、OS X、WINDOWS(登録商標)、又は、組み込みオペレーティングシステム(例えば、VxWorks))を保存する。
【0075】
システムコントローラー622は、プロセッサ602から独立して動作するサービスプロセッサである。いくつかの実施形態において、システムコントローラー622は、ベースボードマネジメントコントローラー(BMC)である。例えば、BMCは、特殊化された(specialized)サービスプロセッサであり、センサーを用いて、コンピュータ、ネットワークサーバ又は他のハードウェアデバイスの物理的状態を監視すると共に、独立した接続を介してシステム管理者と通信する。BMCは、監視される装置のマザーボード又は回路基板上に構成される。BMCのセンサーは、内部の物理的変数(例えば、温度、湿度、電源供給電圧、ファン速度、通信パラメータ、及び、オペレーティングシステム(OS)機能)を測定することができる。
【0076】
記載される特徴は、一つ以上のコンピュータプログラムで有利に実施され、一つ以上のコンピュータプログラムは、プログラム可能なシステム上で実行可能であり、プログラム可能なシステムは、少なくともプログラム可能なプロセッサを有し、プログラム可能なプロセッサは、データストレージシステム、少なくとも一つの入力装置及び少なくとも一つの出力装置と結合され、データ及び命令を送受信する。コンピュータプログラムは、命令の集合であり、命令は、直接又は間接的にコンピュータで用いられて、特定のアクティビティを実行する、或いは、特定の結果をもたらす。コンピュータプログラムは、プログラミング言語(例えば、Objective-C、Java(登録商標)、Python)の任意の形式で書き込まれ、コンパイル型言語又はインタープリタ型言語を有し、且つ、スタンドアローンプログラム又はモジュール、コンポーネント、サブルーティン、或いは、コンピュータ環境で用いられるのに適切な他のユニットとして、任意の形式で配備される。
【0077】
命令のプログラムを実行するのに適切なプロセッサは、例として、汎用及び特殊用途のマイクロプロセッサ、及び、任意の種類のコンピュータの単一のプロセッサ若しくは複数のプロセッサ又はコアのうち何れかを有する。一般的に、プロセッサは、リードオンリーメモリ、ランダムアクセスメモリ、又は、その両方から、命令及びデータを受信する。コンピュータの必須要素は、命令を実行するプロセッサと、命令及びデータを保存する一つ以上のメモリである。一般的に、コンピュータは、データファイルを保存するための一つ以上の大容量(mass)ストレージデバイスを有するか、大量のストレージデバイスと通信するように動作可能に結合される。このような装置は、磁気ディスク(例えば、内部ハードディスク、及び、リムーバブルディスク)、光磁気ディスク、光学ディスクを有する。コンピュータプログラム命令及びデータを具体化するのに適したストレージデバイスは、あらゆる形式の不揮発性メモリを有し、不揮発性メモリは、例として、半導体メモリデバイス(例えば、EPROM、EEPROM、及び、フラッシュメモリデバイス)、磁気ディスク(例えば、内部ハードディスク、及び、リムーバブルディスク)、光磁気ディスク、CD-ROM及びDVD-ROMディスクを有する。プロセッサやメモリに、ASIC(特定用途向け集積回路)を追加したり、組み込んだりすることも可能である。
【0078】
ユーザーとの相互作用を提供するために、特徴は、コンピュータ上で実施される。コンピュータは、ユーザーに情報を表示するディスプレイデバイス(例えば、CRT(cathode ray tube)、又は、LCD(液晶ディスプレイ)モニター)、及び、ユーザーが入力をコンピュータに提供するキーボードとポインティングディバイス(pointing device)(例えば、マウス、又は、トラックボール(trackball))を有する。
【0079】
特徴は、コンピュータシステムで実施され、コンピュータシステムは、バックエンド(back end)コンポーネント、ミドルウェア(middleware)コンポーネント、フロントエンド(frontend)コンポーネント、又は、それらの任意の組み合わせを有する。例えば、バックエンドコンポーネントはデータサーバである。ミドルウェアコンポーネントは、例えば、アプリケーションサーバ、又は、インターネットサーバである。フロントエンドコンポーネントは、例えば、グラフィカルユーザーインターフェース、又は、インターネットブラウザを有するクライアントコンピュータである。システムのコンポーネントは、デジタルデータ通信の任意の形式、又は、媒体(例えば、通信ネットワーク)により接続される。通信ネットワークの例は、例えば、LAN、WAN、並びに、インターネットを形成するコンピュータ及びネットワークを有する。
【0080】
コンピュータシステムは、クライアント及びサーバを有する。クライアント及びサーバは、通常、互いに離れており、且つ、一般的に、ネットワークを介して相互作用する。クライアントとサーバとの間の関係は、各々のコンピュータ上で実行されるコンピュータプログラムの効力(virtue)により発生するとともに、互いにクライアントサーバ関係を有する。
【0081】
開示される実施形態の一つ以上の特徴又はステップは、アプリケーションプログラミングインターフェース(API)を用いて実施される。APIは、一つ以上のパラメータを定義し、一つ以上のパラメータは、呼び出しアプリケーション(calling application)と他のソフトウェアコード(例えば、オペレーティングシステム、ライブラリルーティン(library routine)、関数(function))間で伝送され、ソフトウェアコードは、サービスを提供する、データを提供する、又は、動作若しくは計算を実行する。
【0082】
APIは、プログラムコード内の一つ以上の呼び出しとして実施され、プログラムコードは、パラメータリスト又は他の構造を介して、API仕様書で定義される呼び出し規約(call convention)に基づいて、一つ以上のパラメータを送受信する。パラメータは、定数(constant)、キー、データ構造、オブジェクト、オブジェクトクラス、変数(variable)、データタイプ、ポインター、アレイ、リスト、又は、別の呼び出しである。API呼び出し及びパラメータは、任意のプログラミング言語で実施される。プログラミング言語は、プログラマーが、APIをサポートする機能にアクセスするために用いる語彙及び呼び出し規約を定義する。
【0083】
いくつかの実施形態において、API呼び出しは、アプリケーションに、アプリケーション(例えば、入力能力、出力能力、処理能力、電源能力、通信能力等)を実行する装置の能力を報告する。
【0084】
実施形態の上述した内容は、図で示した実施態様を有し、例示及び説明の目的のためだけに提示されるとともに、開示される内容に対し、網羅的又は限定的であるものとしてとらえられるべきではない。いくつかの変更、調整及び使用は、当業者であれば理解可能である。当業者であれば、本発明の趣旨や範囲を逸脱しない限り、開示される実施形態を変更することができる。よって、本発明の広さ及び範囲は、上述した実施形態によって限定されるべきではない。
【0085】
一つ以上の実施形態を参照して、本発明のいくつかの態様及び特徴が図示及び記載されているが、当業者であれば、明細書及び添付図面を読み、理解することにより、様々な変更及び代替形態を受け入れることができる。また、特定の特徴が、いくつかの実施形態のうち一つだけを参照して開示されているが、このような特徴は、任意の所定の又は特定のアプリケーションに必要とされ、且つ、有利となるように、別の実施形態の一つ以上の他の特徴と結合することができる。
【0086】
特に断りのない限り、単数形は複数形を含み、その逆もまた同様である。「有する」という用語は、「制限なしに有する」ことを意味する。さらに、近似の用語(例えば、「約(about)」、「ほぼ(almost)」、「実質的に(substantially)」、「約(approximately)」等)は、本明細書では、例えば、「~で(at)」、「~の近く(near)」、「~の近くで(nearly at)」、「~の3~5%内」、「~の許容可能な製造公差内」、又は、これらの任意の論理的結合の意味で用いられる。同様に、「垂直」や「水平」は、それぞれ垂直や水平方位の「3~5%内」を追加的に有する。また、方向を示す用語(例えば、「上」、「下」、「左」、「右」、「上方」、「下方」)は、図面に描かれているのと同等の方向、参照されているオブジェクトから文脈的に理解できる方向(例えば、オブジェクト又は要素について一般的に用いられる位置を基準とする等)、又は、本明細書に別途記載される方向に基づく。
【0087】
特に定義されない限り、ここで用いられる全ての用語(技術及び科学用語を含む)は、当業者によって一般的に理解されるものと同じ意味を有する。さらに、例えば、一般的に使用される辞書に定義されている用語は、特に定義されない限り、従来の技術の文脈における意味と同じ意味を有すると解釈されるべきであり、理想化又は過度に形式的な意味として解釈されない。
【0088】
以下の任意の請求項の一つ以上からの一つ以上の要素、態様、ステップ、又は、これらの任意の部分は、他の任意の請求項の一つ以上からの一つ以上の要素、態様、ステップ、又は、これらの任意の部分と組み合わせて、本開示の一つ以上の追加の実施形態及び/又は請求項を形成する。
【符号の説明】
【0089】
100…コンピュータ環境
102、432…サーバ
104…データベース
106…BIOSコンフィギュレーションエントリー
108…ファームウェアパッケージ
110…コンフィギュレーションペイロード
112…ファームウェアデータ
114…ネットワーク
116、430…コンピュータシステム
118…設定分析モジュール
120…ファームウェア生成モジュール
122…分析システム
124…BIOSメモリ
126…BMC
128…マネジメントシステム
130…BMCメモリ
200、300、400…工程
202、204、206、208、210、212、214、216、218、220、302、304、306、308、310、312、314、316、318、320、322、324、402、404、406、408、410、412、414、416、418、420、422…ブロック
500…GUI
502…BIOSセットアップユーティリティウィンドウ
504…カスタマイズされたNVRAMデータ
506…第一パフォーマンスモード
508…第二パフォーマンスモード
510…保存されたNVRAMデータ
512…第一NVRAMデータ
514…第二NVRAMデータ
516…第三NVRAMデータ
600…システムアーキテクチャ
602…プロセッサ
604…入力装置
606…ディスプレイ装置
608…ネットワークインターフェース
610…コンピュータ可読媒体
612…バス
614…オペレーティングシステム
618…メモリ
620…アプリケーション
622…システムコントローラー