TWI832201B - 電腦執行的方法及計算系統 - Google Patents

電腦執行的方法及計算系統 Download PDF

Info

Publication number
TWI832201B
TWI832201B TW111113415A TW111113415A TWI832201B TW I832201 B TWI832201 B TW I832201B TW 111113415 A TW111113415 A TW 111113415A TW 111113415 A TW111113415 A TW 111113415A TW I832201 B TWI832201 B TW I832201B
Authority
TW
Taiwan
Prior art keywords
bios
configuration
memory
mentioned
computing system
Prior art date
Application number
TW111113415A
Other languages
English (en)
Other versions
TW202331515A (zh
Inventor
陳龍志
陳天佑
簡庭威
黃昭凱
Original Assignee
廣達電腦股份有限公司
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 廣達電腦股份有限公司 filed Critical 廣達電腦股份有限公司
Publication of TW202331515A publication Critical patent/TW202331515A/zh
Application granted granted Critical
Publication of TWI832201B publication Critical patent/TWI832201B/zh

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/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files

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)

Abstract

在此揭露用以產生、配置及使用BIOS組態的系統及方法。效能模式BIOS組態可以為唯一的BIOS設定值的集合,上述集合被建立以優化特定的效能參數或效能參數的集合或組合,例如啟動速度或作業系統安裝速度。根據給定的硬體組態且/或效能參數的集合,一或多個效能模式BIOS組態以一或多個組態負載的形式封包及傳送至BMC記憶體。BIOS設置公用程式或程序顯示在BMC記憶體中所有可使用的組態負載,例如根據效能模式的類型列出 (例如「啟動速度效能模式」及「作業系統安裝效能模式」),並允許使用者以被選擇的BIOS組態負載覆寫包含目前的BIOS組態的記憶體。

Description

電腦執行的方法及計算系統
本發明是關於計算系統,特別是關於電腦韌體(例如:基本輸入/輸出系統(Basic Input/Output System (BIOS))韌體)的操作。
計算系統經常在系統啟動時使用BIOS韌體以處理多種初始化流程(initialization process)。多個BIOS設定可以視需要改變及調整,每個BIOS設定可以影響計算系統的啟動程序(boot up procedure)。一般而言,對於每個BIOS設定會有一組預設值被提供或儲存於一計算系統中,使上述計算系統可以可靠地啟動。這組BIOS設定值的預設集合可以被建立在不同的計算系統中及在不同類型的計算系統中使用。雖然BIOS設定值的預設集合通常可以用於可靠地啟動一計算系統,但是一般情況下預設的設定不會優化各種效能參數(performance parameter),例如啟動速度(boot speed)、作業系統安裝速度(operating system(OS) installation speed)、能量使用(energy usage)、熱產生 (heat generation)等。此外,當計算系統的硬體組態(configuration)改變時,預設的BIOS設定值可能不再合適。
因此,需要一種用以調整BIOS設定值的改良技術。
實施例一詞及相似的用語,旨在廣義上指這個揭露及以下請求項的所有標的。包含這些用語的聲明應理解為不被限制於這裡描述的標的,或是不被用以限制以下請求項的意義或範圍。本揭露在此涵蓋的實施例由以下請求項輔以本發明內容定義。本發明內容是一個揭露內容各面向的高層次概述,及介紹一些概念,上述概念會在實施方式中有進一步的描述。本發明內容不用以識別請求項標的的關鍵或必要特徵。本發明內容也不應單獨使用來決定請求項標的的範圍。標的內容應該以參考本揭露整個詳細說明的適當部份、任何或全部圖式,及每個請求項的方式理解。
本發明的實施例包含用以產生一組態資料庫(database)的一電腦執行的方法。上述方法包含接收與啟動一計算系統有關的一或多個效能參數,上述計算系統具有一硬體組態。上述計算系統使用一BIOS啟動。上述方法更包含辨識與上述一或多個效能參數有關的一BIOS設定的集合。上述方法更包含辨識已辨識出的上述BIOS設定的集合中的多個唯一(unique)的組合,上述BIOS設定的集合與上述一或多個效能參數有關。上述方法更包含對每個上述多個唯一的組合分析上述一或多個效能參數,以產生一分析資料。上述方法更包含根據至少一部份上述分析資料決定上述多個唯一的組合的一被選擇的組合。上述方法更包含將與上述一或多個效能參數關聯的上述被選擇的組合進行儲存。
本發明的實施例包含一電腦執行的方法,上述方法包含由一計算系統的一BIOS韌體存取一基板管理控制器(baseboard management controller (BMC))記憶體。上述方法更包含辨識上述BMC記憶體中的一或多個組態負載(configuration payload)。每個上述一或多個組態負載包含一BIOS設定值的一唯一的組合。上述方法更包含呈現一BIOS設置公用程式(BIOS setup utility)(或程序)。呈現上述BIOS設置公用程式的操作包含將每個上述一或多個組態負載作為一各別的組態預設 (configuration preset)呈現。上述方法更包含接收一使用者選擇,以選擇一被選擇的組態預設,上述被選擇的組態預設與上述一或多個組態負載中的一被選擇的組態負載有關。上述方法更包含執行上述被選擇的組態預設。執行上述被選擇的組態預設的操作包含使用上述被選擇的組態負載的上述BIOS設定值的上述唯一的組合啟動上述計算系統。
本發明的實施例包含一計算系統,上述計算系統包含具有一BMC記憶體的一BMC。上述計算系統更包含一使用者輸入裝置。上述計算系統更包含一或多個資料處理器。上述計算系統更包含耦接上述一或多個資料處理器的一記憶體。上述記憶體中儲存有一機器可讀指令。上述記憶體包含用以儲存多個BIOS設定值的一BIOS記憶體。當上述機器可讀指令由上述一或多個資料處理器執行時,致使上述一或多個資料處理器執行操作。上述操作包含存取上述BMC記憶體。上述操作更包含辨識上述BMC記憶體中的一或多個組態負載。每個上述一或多個組態負載包含上述多個BIOS設定值的一唯一的組合。上述操作更包含呈現一BIOS設置公用程式。呈現上述BIOS設置公用程式的操作包含將每個上述一或多個組態附載作為一各別的組態預設呈現。上述操作更包含經由上述使用者輸入裝置接收一使用者選擇,以選擇一被選擇的組態預設,上述被選擇的組態預設與上述一或多個組態負載中的一被選擇的組態負載有關。上述操作更包含執行上述被選擇的組態預設。執行上述被選擇的組態預設的操作包含使用上述被選擇的組態負載的上述多個BIOS設定值的上述唯一的組合啟動上述計算系統。
以上發明內容的目的並不是要代表每個實施方式或本揭露的每個面向。應該說,以上發明內容僅提供在此列出的一些新穎的實施例的一個例子。以上特徵及優點,以及本揭露的其他特徵及優點,藉由接下來代表性實施方式及執行本發明的模式的詳細描述,並和附帶的圖式及請求項連結,將會十分清楚。本揭露額外的面向在根據多個實施方式的詳細說明並參考了圖式以後,對於本領域具有通常知識的技術人員來說將會十分清楚,對於圖式的簡要說明在以下提供。
本發明實施例與用以產生、配置(distribute)及使用效能模式BIOS組態的系統及方法有關。每個效能模式BIOS組態可以為BIOS設定值的一唯一的集合,上述BIOS設定值的唯一的集合被建立以優化(optimize)一特定的效能參數或效能參數的集合。舉例來說,上述效能參數可以為啟動速度或作業系統(OS)安裝速度。根據一給定的硬體組態且/或(and/or)效能參數的集合,一或多個效能模式BIOS組態可以以一或多個組態負載(configuration payload)的形式被封包(package)及傳送至一BMC的一記憶體中。BIOS設置公用程式可以顯示所有組態負載。舉例來說,可以根據效能模式的型態(例如,「啟動速度效能模式」及「OS安裝效能模式」)列出,上述組態負載可以在BMC記憶體中取得,並允許使用者用一被選擇的組態負載覆寫(overwrite)包含目前的BIOS組態的記憶體。
在此使用的用語「BIOS」包含任何用以啟動一計算系統的韌體。因此,用語「BIOS」旨在包含用以啟動一計算系統的一統一可延伸韌體介面(Unified Extensible Firmware Interface(UEFI))韌體。因此,一BIOS設置公用程式旨在包含一UEFI設置公用程式,且BIOS設定旨在包含UEFI設定。
一BIOS設定可以為BIOS韌體的任何可調整的設定。舉例來說,上述BIOS設定可以為啟動順序(boot order)、介面設定(例如,序列先進技術附接(Serial Advanced Technology Attachment(serial ATA))設定、通用序列匯流排(universal serial bus (USB))設定等)、電源選項(power option)、顯示設定、網路喚醒(wake-on-LAN)設定、處理器設定、記憶體設定之類等。每個BIOS設定可以由儲存設定的值進行設定。因此,每個BIOS設定可以有一相關的BIOS設定值,上述相關的BIOS設定值指出特定的BIOS設定如何影響啟動程序。BIOS設定的集合為可調整的BIOS設定的合集(collection)。BIOS設定值的集合為一或多個BIOS設定的一或多個值的合集。BIOS組態包含一BIOS設定值的集合。在一些情況下,BIOS組態可以包含在任何給定的BIOS韌體中,每個可用的BIOS設定的BIOS設定值。
在一些情況下,BIOS組態的儲存格式,與BIOS設定值在活動的系統(live system)上使用時的儲存格式相同。舉例來說,在一活動的系統上,上述活動的系統的BIOS組態(例如,一目前的BIOS組態),可以為用以儲存上述BIOS設定值的BIOS記憶體的部份(例如,一非揮發性隨機存取記憶體(non-volatile random access memory (NVRAM))的部份)。在計算系統上使用的一效能模式BIOS組態可以以相同的方式儲存於上述BIOS記憶體(例如,NVRAM)中,使得上述效能模式BIOS組態可以在需要時容易地複製至BIOS記憶體中。
一BIOS可以有一目前的BIOS組態,上述目前的BIOS組態為目前儲存於上述BIOS記憶體(例如,NVRAM)中的BIOS設定值的集合。在計算系統啟動期間,上述BIOS可以存取上述目前的BIOS組態以決定如何啟動上述計算系統。當需要改變上述目前的BIOS組態時,可以啟動一BIOS設置公用程式,上述BIOS設置公用程式提供使用者選項,用以更改各別的BIOS設定值,及將上述各別的BIOS設定值作為一新的目前的BIOS組態儲存至上述BIOS記憶體中(例如,覆寫(overwrite)NVRAM的一部份)。
一BIOS可以在一計算系統上執行以啟動上述計算系統。上述計算系統可以有一特定的硬體組態。一硬體組態可以包含組成上述計算系統的硬體元件的合集,例如主機板(mainboard)、記憶體、圖形處理單元(graphic processing unit)、處理器、周邊裝置(例如,使用者輸入裝置,舉例來說,上述使用者輸入裝置可以為鍵盤、滑鼠以及觸控螢幕(touchscreen))、網路介面等。因為BIOS的要求及效能與一給定的硬體組態有關,在一些情況下,本發明實施例允許在多個不同的硬體組態間,為同一效能模式創造唯一的BIOS組態。
在此使用的用語「效能模式」指一相關的BIOS組態的目的或描述,例如指在一相關的BIOS組態中,被優化的上述一或多個效能參數。舉例來說,被設計以優化啟動速度的BIOS組態可以被認定為一「啟動速度效能模式」BIOS組態。在這種情況下,上述效能模式可以為「啟動速度」。在另一個範例中,被設計以優化(例如最小化)用電量(power usage)的BIOS組態可以被認定為一「節電效能模式」BIOS組態。在這種情況下,上述效能模式可以為「節電」。其他效能模式亦可以被使用。在一些情況下,上述效能模式可以被選擇以達到所需的結果,而不是用於優化任何單一效能參數或效能參數的組合。
在此使用的用語「效能參數」旨在包含任何可測量的(例如客觀可測量的,或是在一些情況下,主觀可測量的)參數,上述參數的值以某種方式與一或多個BIOS設定有關。一效能參數可以根據計算系統的要求,在多種情況下被認為是最佳的(optimal)或優化的。雖然基本上,一效能參數會在與其他不同的BIOS設定比較時被決定為是最佳的或優化的,但是在一些情況下一效能參數可以單獨的被認為是最佳的或優化的。在一些情況下,當一效能參數到達或超過一預設閥值時,上述效能參數被認定為是最佳的或優化的。在一些情況下,當一效能參數到達一最大值或一最小值(例如,與其他具有不同BIOS設定值的迭代(iteration)比較)時,上述效能參數被認定為是最佳的或優化的。在一些情況下,當一效能參數達到一預設值、落在鄰近一預設值的一預設範圍內,或是最靠近上述預設值(例如,與其他具有不同BIOS設定值的迭代比較)時,上述效能參數被認定為是最佳的或優化的。
根據本揭露的特定面向,可以產生及維護BIOS組態的一資料庫。上述資料庫包含一系列與效能模式有關的條目(entry),可選擇地包含與每個效能模式及硬體組態組合有關的一唯一條目。一或多個BIOS組態可以被提供至一計算系統,例如經由一基板管理控制器(BMC)提供。如在此所進一步詳細揭露的,上述BIOS組態接著被儲存於上述BMC記憶體中以供未來使用。在一些情況下,每個BIOS組態的儲存格式,可以與上述BIOS組態作為目前的BIOS組態使用時,在NVRAM中使用的格式相同。因此,切換一目前的BIOS組態到一效能模式BIOS組態的程序可以包含使用上述BIOS組態覆蓋或覆寫上述BIOS記憶體(例如NVRAM)。在一些情況下,一效能模式BIOS組態包含的BIOS設定,比任何給定的BIOS中可用的(available)所有BIOS設定還要少。在這種情況下,當執行效能模式BIOS組態時,只有儲存於效能模式BIOS組態中的BIOS設定被覆蓋、覆寫或更新。
BIOS組態的資料庫可以按照需求預先被擴充或被創造。在上述資料庫中創造一新的BIOS組態條目的操作可以包含產生一BIOS組態,上述BIOS組態為一或多個效能參數的一特定的集合。從效能參數的集合可以辨識BIOS設定,上述BIOS設定為已知或可能影響任何效能參數的集合,並且可以決定上述BIOS設定值的唯一組合,因此產生一唯一的、可能的BIOS組態的集合。每個上述唯一的、可能的BIOS組態可以被測試(例如虛擬地或實體地),並且所產生的效能參數可以被測量及分析以決定哪個可能的BIOS組態為最佳的。在一些情況下,只有單一可能的BIOS組態被視為最佳的。在一些情況下,多個可能的BIOS組態被視為可選擇的,在這種情況下,可以使用一或多個額外的效能參數區分多個最佳的BIOS組態及辨識一個所需的BIOS組態。一旦一個最佳的或所需的BIOS組態被辨識出來,可以將上述最佳的或所需的BIOS組態,其與用來產生上述最佳的或所需的BIOS組態的效能參數關聯,進行儲存,在某些情況下,也可以儲存一名稱(例如,一效能模式)。
BIOS組態可以被虛擬地或實體地測試。虛擬測試包含使用一虛擬機器(virtual machine)模擬一啟動流程。實體測試包含使用一實體機器制定一啟動流程。在一些情況下,實體測試可以為執行受控的方法。舉例來說,上述受控的方法為資料庫提供者(provider)主動地嘗試使用本身的實體機器對於數個不同的BIOS組態蒐集效能參數資料。在一些情況下,實體測試可以在活動的系統上執行。舉例來說,實體測試可以為操作一活動的系統的一使用者決定改變一或多個BIOS設定,並蒐集上述一或多個BIOS設定的效能參數資料。在這種情況下,活動的使用者(live user)可以選擇向上述資料庫提供者提供效能參數資料及BIOS組態。
適合一給定的硬體組態的多種BIOS組態可以被一起封包,並傳送至一計算系統。在一些情況下,一或多個BIOS組態可以被一起封包為一組態負載,上述組態負載可以被包含於有關的BIOS韌體的一配置(distribution)內。舉例來說,一個由供應商(vendor)為計算系統的一集合所配置的BIOS韌體可以包含效能模式BIOS組態的集合,上述效能模式BIOS組態的集合作為二進位檔案,以為韌體映像(image)的一部份。當轉移至上述計算系統的一BMC時,上述效能模式BIOS組態可以被儲存於BMC記憶體中(例如,上述BMC可以存取的記憶體)。之後,當一BIOS設置公用程式被載入時,上述BIOS設置公用程式會掃描上述BMC記憶體以辨識其中任何可用的效能模式BIOS組態,並將每個效能模式BIOS組態作為一可用的組態預設來顯示。一旦使用者選擇使用其中一個上述組態預設,系統可以自動覆蓋、覆寫或複製相關效能模式BIOS組態至上述BIOS記憶體(例如,NVRAM)中,並且在將目前BIOS組態儲存於上述BMC記憶體中之後,可選擇地重新啟動系統。若是上述系統無法適當地啟動,可以使用儲存於上述BMC記憶體中的上述目前的BIOS組態,將上述BMC記憶體還原(revert) 至執行效能模式BIOS組態之前的狀態,因此允許上述系統在一錯誤(failure)後能夠適當地啟動。
本發明實施例進一步允許使用者將先前嘗試且/或先前儲存的BIOS組態,使用與上述效能模式BIOS組態相似的方式儲存於上述BMC記憶體中。
本發明實施例藉由允許使用者根據當前的工作簡單地切換不同優化的BIOS組態,於改進在啟動程序中計算系統如何運作特別有用。舉例來說,當一使用者需要在大量的計算裝置上安裝作業系統時,藉由載入已優化以最小化安裝作業系統所需時間的一BIOS組態可以節省大量的時間。然而,由於上述BIOS組態並沒有對於其他目的優化(例如可能沒有優化用電量或啟動時間),使用者可能會在作業系統安裝完成後希望快速地選擇另一個BIOS組態。
此外,本發明實施例允許根據所需(例如效能參數) 系統地產生已優化的BIOS組態,並快速地、簡單地配置。在一些情況下,本發明實施例允許一計算系統(例如,一計算系統的一BMC)根據需求從一伺服器動態地要求BIOS組態,如此可以更容易的達到始終使用最近且最新的效能模式BIOS組態。
這些示意說明的範例被提供以向讀者介紹在此討論的廣泛的標的,並不用以限制揭露的概念的範圍。以下段落參照圖式描述了多種額外的特徵及範例。在上述圖式中,相似的編號指示相似的元件,方向性的描述被用以描述示意的實施例,不應該被用以限制本揭露。圖式中包含的元件在此可能不按比例繪製。
第1圖為一示意的方塊圖,根據本揭露的特定面向描述了用以產生、部署,且/或使用效能模式BIOS組態的計算環境100。計算環境100包含一計算系統116,以及可選擇的網路114及伺服器102。如本文所使用的,計算系統116及伺服器102可以為任何合適的計算裝置,舉例來說,上述計算系統116及伺服器102可以為一個人家用電腦(personal home computer)、一伺服器電腦、一嵌入式計算系統(embedded computing system),或任何其他計算裝置。雖然不一定是這個情況,計算系統116及伺服器102可以通訊地(communicatively)由網路114(例如,一區域網路(local area network)、一廣域網路(wide area network)、網際網路(Internet)、一雲端網路(cloud network)或類似物)耦接在一起。在一些情況下,可以使用其他可選擇的計算裝置,例如一分析系統122或一管理系統128。
計算系統116可以為使用一BIOS韌體操作的一使用者的一電腦系統。計算系統116可以包含BIOS記憶體124(例如NVRAM),BIOS記憶體124可以用以儲存BIOS設定的BIOS設定值。計算系統116可以更包含一BMC (基板管理控制器 baseboard management controller)126,BMC 126用以促進計算系統116的管理。BMC 126具有專用的基板管理控制器(BMC)記憶體130,BMC記憶體130與BIOS記憶體124是分開的。在一些替代性的情況下,BMC記憶體130及BIOS記憶體124可以為在相同的實體記憶體中邏輯上分離的位置。
一可選擇的管理系統128可經由連接到BMC 126以增進計算系統116的管理。舉例來說,BMC 126可以經由一網路連接提供一BMC使用者介面,上述網路連接可以由管理系統128存取。在這種情況下,管理系統128可以管理任何數量的計算系統116,例如包含多個框架(rack)的一伺服器農場(server farm),每個上述框架包含多個計算系統116(例如,具有相同的或不同的硬體組態)。管理系統128可以如在此所揭露的,用以控制組態負載(configuration payloads)110的傳送,以及控制BMC 126以執行一效能模式組態。
伺服器102可以為任何合適的計算裝置或計算裝置的集合。伺服器102能夠提供多個模組,舉例來說,上述多個模組可以為設定分析模組118及一韌體產生模組120。在此使用的用語「模組」包含硬體且/或軟體的集合,上述硬體且/或軟體的集合被配置以執行特定的工作,例如分析效能參數資料或產生韌體封包(package)。
設定分析模組118能夠接收效能參數資料,舉例來說,經由網路114從分開的(separate)分析系統122接收,或是從伺服器102本身接收(例如,伺服器102藉由執行一虛擬機器取得效能參數資料)。當分析系統122被使用時,分析系統122可以為使用一特定的硬體組態設定的一實體計算裝置,上述特定的硬體組態需要效能模式BIOS組態。或是分析系統122可以為一通用計算裝置,上述通用計算裝置能夠藉由執行其中的一虛擬機器取得效能參數資料。在一些情況下,設定分析模組118能夠: i)當產生不同的BIOS設定值的組合時,幫助決定該使用什麼不同的BIOS設定(例如用以測試的不同的BIOS組態);ii)啟動對效能參數資料的擷取; iii)接收擷取到的效能參數資料; iv)分析效能參數資料以決定一或多個優化的BIOS組態; v)將上述優化的BIOS組態儲存於一資料庫中(例如,資料庫104);或vi)執行i-v中的任何組合。
伺服器102可以用以製造、修改、且/或存取資料庫104。資料庫104能夠以任何合適的方式被儲存,舉例來說,在伺服器102的記憶體中或外部的記憶體中。資料庫104可以包含多個BIOS組態條目(configuration entry)106。每個BIOS組態條目106包含一效能模式BIOS組態,以及可選擇地包含任何附帶的相關資料。舉例來說,上述附帶的相關資料可以為一唯一的識別碼(identifier)、與效能模式BIOS組態有關的硬體組態訊息(例如一效能模式名稱或識別碼),且/或與效能模式BIOS組態有關的效能參數訊息(例如任何由相關的組態優化的效能參數的清單)。雖然舉例以BIOS組態條目106說明,相同的訊息可以以其他方式儲存於資料庫104中。舉例來說,單一的BIOS組態可以與多個不同的效能模式、硬體組態,或是效能模式以及硬體組態的組合有關。在其他範例中,單一的效能模式可以與多個可能的BIOS組態有關。
伺服器102包含一韌體產生模組120,韌體產生模組120能夠增進將一或多個BIOS組態封包進一組態負載110中,組態負載110可以被傳送到計算系統116的BMC126。組態負載110可以單獨被提供(例如,經由網路114或經由一可移除的儲存裝置),或是可以被封包進一韌體封包108中。韌體封包108可以包含組態負載110及任何必要的韌體資料112。韌體封包108可以被傳送到BMC 126及儲存於BMC記憶體130中。因此,韌體封包108可以允許任何BIOS組態封包在其中,而韌體資料112可以用以編程(program)且/或更新BIOS韌體(例如,將編碼儲存於BIOS記憶體124中)。
在實務上,使用者可以經由計算系統116本身或經由分開的管理系統128存取一BIOS設置公用程式。上述BIOS設置公用程式能夠顯示在BMC記憶體130中可用的BIOS組態,並允許使用者選擇其中一個使用。接下來,上述BIOS設置公用程式能夠致使被選擇的BIOS組態被複製至BIOS記憶體124中(例如,藉由覆寫之前儲存於BIOS記憶體124中的目前的BIOS組態的部份),可以選擇在將目前的BIOS組態儲存於BMC記憶體130中之後,再將被選擇的BIOS組態複製至BIOS記憶體124中,以防將來需要再次使用。之後,計算系統116可以重新使用被選擇的BIOS組態啟動。
雖然以特定的元件描述,計算環境100在一些情況下可以包含更多或更少元件。此外,計算環境100的各種元件在一些情況下可以視情況合併成一組合元件,或是各種元件可以視情況分開成多個元件。
第2圖為一流程圖,根據本揭露的特定面向描述用以產生效能模式BIOS組態的一流程200。流程200可以由任何合適的計算系統執行,舉例來說,由第1圖中的伺服器102執行。
在方塊202中,接收一或多個效能參數。接收的效能參數可以為需要優化的一或多個效能參數的清單。接收的效能參數可以根據顧客的要求、供應商想要優化特定的參數,或是其他任何合適的資訊得出。在一些情況下,在方塊202中除了接收效能參數外,也可以接收一硬體組態。上述硬體組態可以為硬體的一給定的組態,在上述硬體上將會執行即將被優化的BIOS。在一些情況下,在方塊202接收額外訊息,舉例來說,上述額外訊息可以為即將由一BIOS安裝的特定軟體的訊息、需要被維護的特定限制(例如,使用低於一閥值瓦特數(wattage)的能量)之類等。
在一個範例中,供應商想要提供使安裝特定作業系統(OS)的時間最小化的一效能模式BIOS組態。在這種情況下,效能參數可以為「安裝OS的時間」,並且當上述效能參數達到最小值時被視為最佳的。其他效能參數的例子包含啟動時間、用電量、產生的熱等。
在方塊204中,辨識與來自方塊202的效能參數有關的BIOS設定。當改變一BIOS設定值會影響上述效能參數時,上述BIOS設定與上述效能參數有關。辨識上述BIOS設定的操作可以包含存取已知與上述效能參數有關的已知BIOS設定的一清單。在一些情況下,辨識上述BIOS設定的操作可以包含預測一或多個BIOS設定可能影響上述效能參數。在一些情況下,在方塊204中使用BIOS設定的一標準集合(standard set)。在一些情況下,在方塊204中使用的BIOS設定的集合,可以作為在方塊202中接收上述效能參數的一部份被接收(例如,若是顧客希望限制哪些設定在產生效能模式BIOS組態時是可以被改變的)。
在方塊206中,辨識已辨識出的BIOS設定值的唯一(unique)且可能的組態。每個唯一且可能的組態為唯一的BIOS設定值的一集合,上述唯一的BIOS設定值為來自方塊204的已辨識出的BIOS設定值。舉例來說,一第一BIOS設定具有兩個可能的值,以及一第二BIOS設定具有三個可能的值,唯一且可能的組態的總數為6。若是在方塊204中也辨識出一第三BIOS設定具有五個可能的值,唯一且可能的組態的總數為30。在一些情況下,可以在方塊206中辨識每個唯一且可能的組態,並在之後使用,雖然不一定總是如此。在一些情況下,只有所有唯一且可能的組態的子集合被辨識且/或使用。
當決定值的唯一且可能的組態時,一給定的BIOS設定的唯一且可能的值的數量可以:由設定本身定義(例如,二進位設定只有「真」及「假」兩個值)、為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。
在方塊208中,對於已在方塊206中辨識的每個唯一且可能的組態,分析來自方塊202的已辨識出的效能參數。分析一效能參數的操作可以包含取得上述效能參數的測量值。舉例來說,分析為啟動時間的效能參數的操作可以包含計算啟動開始到啟動完成之間的時間長度。已測量的效能參數被稱為效能參數資料。
在一些情況下,在方塊210中可以使用一或多個虛擬計算系統(例如,虛擬機器)分析效能參數。上述一或多個虛擬計算系統可以被設置以具有一特定的硬體且/或軟體組態,上述特定的硬體且/或軟體組態允許測試BIOS組態及測量效能參數。
在一些情況下,在方塊212中可以使用一或多個實體計算系統分析效能參數。上述實體計算系統可以具有適用於使用情況的一硬體組態。舉例來說,當在方塊202中接收到一特定的硬體組態時,可以使用與上述特定的硬體組態相同的硬體組態,建立在方塊212中使用的上述實體計算系統。
在一些情況下,在方塊214中可以藉由從一活動的計算系統接收效能資料(活動的效能資料)以分析效能參數。上述效能資料由一活動的計算系統蒐集,舉例來說,上述活動的計算系統為由一客戶操作的計算系統(例如,在方塊202中提供上述效能參數的客戶,且/或使用一計算系統的客戶,上述計算系統準備使用效能模式BIOS組態)。在方塊214中可以接收上述活動的效能資料,以及有關於BIOS組態的訊息,上述BIOS組態用以產生上述活動的效能資料。一旦接收完成,上述活動的效能資料及與上述活動的效能資料有關的BIOS組態可以和來自方塊206的唯一且可能的組態中的一者配對。
在一些情況下,可以依序對於每個唯一且可能的組態分析效能參數。然而,在一些情況下,可以同時對於多個唯一且可能的組態分析效能參數。舉例來說,經由使用i)一或多個虛擬計算系統、ii)一或多個實體計算系統、iii)一或多個活動的計算系統;或是iv)任何i-iii的組合。因此,比起一使用者在單一的計算系統上嘗試一次一個手動調整BIOS設定並測量結果,想要提供效能模式BIOS組態的實體將能夠以更快的速度分析更多唯一的BIOS組態。
方塊208的輸出被稱為分析資料。雖然不一定是這種情況,上述分析資料可以包含每個來自方塊206中唯一且可能的組態的已測量的效能參數。在一些情況下,上述分析資料可以為根據上述已測量的效能參數所選擇的一或多個效能最好的唯一且可能的組態。
在方塊216中,一被選擇的組態可以使用來自方塊208的上述分析資料決定。決定上述被選擇的組態的操作可以包含根據在方塊208中分析的上述已測量的效能參數,將每個來自方塊206唯一且可能的組態排名。一旦排名建立完成,上述被選擇的組態可以為排名中效能最好的組態。舉例來說,當啟動時間為想要優化的效能參數時,所有唯一且可能的組態的排名可以展示一特定的組態,上述特定的組態具有比其他任何組態 達到更短的啟動時間,在這種情況下,認定上述特定的組態為上述被選擇的組態。在一些情況下,可以至少一部份根據使用者輸入(例如,使用者從一些合適的組態中選出一個)決定上述被選擇的組態。在一些情況下,可以至少一部份根據從一預設的BIOS組態更改的BIOS設定的數量且/或類型(例如,在兩個合適的組態中,使用改變較少BIOS設定的那個組態)決定上述被選擇的組態。
在方塊218中,將來自方塊216的上述被選擇的組態,其與來自方塊202的上述效能參數關聯,進行儲存,舉例來說,儲存於資料庫中(例如,第1圖中的資料庫104)。上述被選擇的組態可以因此被儲存成作為用在特定的效能模式的一效能模式BIOS組態,上述特定的效能模式與來自方塊202的上述效能參數有關。雖然不一定總是為這個情況,在方塊218中儲存上述被選擇的組態的操作可以包含使上述被選擇的組態具有一儲存格式,上述儲存格式為上述被選擇的組態會在執行上述被選擇的組態的一計算系統的NVRAM中出現的格式。然而,將上述被選擇的組態以相同的格式儲存可以增進在接收計算系統(receiving computing system)上接下來的執行。在一些情況下,儲存上述被選擇的組態的操作也可以包含將與一硬體組態(例如,在方塊202中接收的一硬體組態)關聯的上述被選擇的組態進行儲存。在一些情況下,儲存上述被選擇的組態的操作也可以包含決定一效能模式識別碼(例如,指示上述效能模式的一名稱或唯一的識別碼,舉例來說,上述名稱或識別碼可以為「啟動時間效能模式」),並且將與上述效能模式識別碼關聯的上述被選擇的組態進行儲存。
在可選擇的方塊220中,上述被選擇的組態(例如,上述效能模式BIOS組態)可以被封包於一組態負載中,上述組態負載之後可以被傳送至一接收計算系統。可選擇地,上述組態負載可以包含上述被選擇的組態以外之額外的組態。舉例來說,一組態負載可以包含 i) 一特定的效能模式BIOS組態; ii)上述特定的效能模式BIOS組態的修改版本(alternate version)(例如一稍微不同的BIOS組態,上述稍微不同的BIOS組態達到與上述特定的效能模式BIOS組態相同或相似的結果); iii)其他效能模式BIOS組態(例如,用在其他效能模式的BIOS組態,上述其他效能模式不同於i)中的特定的效能模式);或是 iv)任何i-iii的組合。一旦傳送至上述接收計算系統,上述組態負載可以被儲存於BMC記憶體中。在一些情況下,上述組態負載與BIOS編碼一起封包於一BIOS韌體檔案中。
雖然以特定的方塊按照特定的順序描述,流程200在一些情況下可以使用更少方塊、更多方塊,且/或不同的方塊順序執行。
第3圖為一流程圖,根據本揭露特定的面向描述用以顯示及執行效能模式BIOS組態的一流程300。流程300可以由任何合適的計算系統執行,舉例來說,上述計算系統可以為第1圖中的計算系統116(可選擇地,以及第1圖中的管理系統128)。舉例來說,流程300可以由一計算系統的一BMC執行,上述BMC能夠由上述計算系統存取,或是由一分開的管理系統存取。
在方塊302中,存取BMC記憶體。在方塊304中,掃描上述BMC記憶體以辨識其中任何BIOS組態,例如效能模式BIOS組態或使用者配置(user-configured)BIOS組態(雖然在一些情況下,使用者配置BIOS組態被視為效能模式BIOS組態)。
在方塊306中,呈現一BIOS設置公用程式。呈現上述BIOS設置公用程式的操作可以包含呈現BIOS設定選項,舉例來說,可以經由一顯示裝置呈現上述BIOS設定選項,呈現的上述BIOS設定選項可以為能夠改變的BIOS設定。作為方塊306的一部份,在方塊304中已辨識出的組態(BIOS組態),在方塊308中可以作為上述BIOS設置公用程式的一部分呈現。上述BIOS組態可以作為一組態預設呈現。將一BIOS組態作為一組態預設呈現的操作可以包含 i)呈現有關於上述BIOS組態的一名稱或是其他識別碼,ii)呈現有關於上述BIOS組態的一或多個效能參數,iii) 呈現有關於上述BIOS組態的一或多個BIOS設定且/或BIOS設定值,或是iv)任何i-iii的組合。
在一些可選擇的情況下,在方塊310中產生一使用者配置BIOS組態。在方塊310中產生一使用者配置BIOS組態的操作可以包含:首先,允許一使用者改變一或多個BIOS設定值。接著,接收一使用者輸入以將當時的目前的(then-current)BIOS設定值作為一使用者配置BIOS組態儲存。當在方塊310中接收上述使用者輸入以儲存上述使用者配置BIOS組態時,可以在方塊312中將上述使用者配置BIOS組態儲存於上述BMC記憶體中。上述使用者配置BIOS組態可以使用類似於效能模式BIOS組態的方式儲存。在一些情況下,在方塊310中可以自動產生上述使用者配置BIOS組態,而不需要特定的使用者輸入以儲存上述使用者配置BIOS組態。在這種情況下,無論使用者何時改變上述BIOS設定值,及儲存上述BIOS設定值(例如,儲存至上述BIOS記憶體)以使用上述BIOS設定值啟動系統,上述BIOS設置公用程式會自動地將上述BIOS設定值作為一自動使用者配置BIOS組態儲存。舉例來說,當一自動使用者配置BIOS組態在方塊308中呈現,上述自動使用者配置BIOS組態可以做為在一特定日期/時間(例如,來自「2021-12-01-13:03:44」的組態)使用的組態呈現。在一些情況下,使用者可以提供自訂名稱(custom name),其與任何手動或自動儲存的使用者配置BIOS組態關聯,進行儲存。
在方塊314中,接收一使用者選擇以選擇一特定的組態預設,並因此選擇一特定的BIOS組態。一旦已選擇,被選擇的組態預設(例如,被選擇的BIOS組態)可以在方塊316中被執行。執行上述組態預設的操作可以包含調整BIOS設定值以符合上述被選擇的BIOS組態的BIOS設定值。在一些情況下,調整上述BIOS設定值的操作特別地包含:將有關於上述被選擇的BIOS組態的NVRAM格式的資料從上述BMC記憶體取出,並使用上述資料以修改計算系統的上述NVRAM(例如BIOS記憶體)。
在一些情況下,在方塊316中執行上述組態預設的操作可以包含在方塊318中將目前的BIOS組態複製至BMC記憶體。複製上述目前的BIOS組態至上述BMC記憶體允許計算系統還原上述目前的BIOS組態,舉例來說,若是使用者手動地希望還原上述BIOS設定值,或者若是上述計算系統無法適當地啟動。在方塊320中,可以使用上述被選擇的組態覆蓋上述BIOS記憶體(例如,NVRAM) 。使用上述被選擇的組態覆蓋上述BIOS記憶體的操作可以包含複製、覆寫,或是將上述選擇BIOS組態從上述BMC記憶體轉移至上述BIOS記憶體。接著,在方塊322中啟動上述計算系統,並因此允許上述計算系統使用位於上述BIOS記憶體中的上述被選擇的BIOS組態啟動。
在一些可選擇的情況下,在方塊324中使用被選擇的組態負載偵測一錯誤。偵測一錯誤的操作可以包含偵測上述啟動程序沒有適當地完成(例如,上述啟動程序沒有在一給定的超時時間(timeout period)內完成,或是特定的必要的硬體或軟體元件沒有適當地載入)。當偵測到錯誤時,BMC可以自動回復到一儲存於上述BMC記憶體中的一BIOS組態,舉例來說,上述BIOS組態可以為一預設的BIOS組態或之前使用過的一BIOS組態(例如,來自方塊318的「目前的」BIOS組態,上述目前的BIOS組態為緊接著之前(immediately previous)的BIOS組態)。
雖然以特定的方塊按照特定的順序描述,流程300在一些情況下可以使用更少方塊、更多方塊,且/或不同的方塊順序執行。舉例來說,方塊302及方塊304在一些情況下在單一方塊中執行。在其他範例中,方塊302及方塊304在一些情況下作為方塊306的一部份執行。在其他範例中,流程300可以從在方塊302之前的一方塊開始。在上述方塊中,上述BMC存取一伺服器以下載一或多個BIOS組態,並在之後將上述一或多個BIOS組態儲存於上述BMC記憶體中,以隨後在方塊302、方塊304中存取。
第4圖為一多系統流程圖,根據本揭露的特定面向描述用以共用及執行效能模式BIOS組態的一流程400。流程400可以由任何合適的計算系統執行,舉例來說,上述計算系統可以為計算系統430及伺服器432,又或者上述計算系統可以為第1圖中的計算系統116及伺服器102。雖然參照單一裝置描述,流程400可歸於計算系統430的部分可以由一或多個計算系統執行,流程400可歸於伺服器432的部分可以由一或多個伺服器執行。
在方塊402中,傳送效能要求(performance requirement)(以及硬體組態訊息(可選擇地))至伺服器432(由計算系統430(可選擇地))。在方塊404中,伺服器432接收上述效能要求。在方塊404中接收上述效能要求後,在方塊406中伺服器432根據所接收到的上述效能要求(以及硬體組態訊息(可選擇地))選擇一所需的BIOS組態。選擇所需的BIOS組態的操作可以包含存取效能模式BIOS組態的一資料庫,以尋找符合上述效能要求(以及硬體組態訊息(可選擇地))的一或多個BIOS組態。在方塊408中,將被選擇的BIOS組態(the selected BIOS configuration)準備至(prepare to)一組態負載中。在一些情況下,上述組態負載的格式與BIOS設定值儲存在NVRAM中的格式相同。在一些情況下,準備上述組態負載的操作可以包含將上述組態負載與BIOS韌體結合。在方塊410中,將上述組態負載傳送至使用者的計算裝置。在方塊412中,計算系統430(例如計算系統430的一BMC)接收上述組態負載。
在方塊414中,將上述組態負載(例如,一或多個被選擇的BIOS組態)儲存於上述BMC記憶體中。在方塊416中,上述BMC記憶體可以被存取(例如,由一BIOS設置公用程式)以辨識可使用的BIOS組態。在方塊418中,將上述可使用的BIOS組態作為唯一的組態預設呈現在一設定選單(setup menu)(例如,一BIOS設置公用程式的一設定選單)中。在方塊420中,計算系統430可以接收一選擇(例如,經由使用者輸入),以使用其中一個所呈現的組態預設。在方塊422中,執行被選擇的組態預設。在方塊422中執行上述被選擇的組態預設的操作可以包含:將與上述被選擇的組態預設有關的BIOS組態複製至BIOS記憶體中,並且重新啟動計算系統430,以允許BIOS使用來自上述被選擇的組態的新的BIOS設定值來運行。
雖然以特定的方塊按照特定的順序描述,流程400在一些情況下可以使用更少方塊、更多方塊,且/或不同的方塊順序執行。
第5圖根據本揭露的特定面向的一範例的圖形化使用者介面(GUI)500。GUI 500用於BIOS設置公用程式上,上述BIOS設置公用程式在一計算系統上執行,舉例來說,上述計算系統可以為第1圖中的計算系統116。
GUI 500能夠顯示一BIOS設置公用程式視窗502。作為BIOS設置公用程式視窗502的一部份,GUI 500能夠呈現自訂(customized)NVRAM資料504及已儲存的NVRAM資料510。
自訂NVRAM資料504可以填入(populate)效能模式參數BIOS組態預設,舉例來說,可以填入第一效能模式506及第二效能模式508。第一效能模式506與一第一效能模式BIOS組態(例如,一「啟動時間最佳化」效能模式BIOS組態)有關,第二效能模式508與一第二效能模式BIOS組態(例如,一「OS安裝時間最佳化」效能模式BIOS組態)有關。
已儲存的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可以為一佔位符(placeholder),上述佔位符可以由使用者儲存額外的使用者配置BIOS組態。
第6圖為一範例的系統架構600的方塊圖,系統架構600用以執行本揭露的特徵及流程,例如參照第2-4圖呈現的特徵及流程。系統架構600可以被用以執行任何合適的計算裝置(例如一伺服器、工作站(workstation)、平板電腦(tablet),或是其他類似的裝置)以實現本揭露的多種特徵及流程。系統架構600可以在任何運行軟體應用程式的電子裝置上執行,上述軟體應用程式來自於編譯過的指令,上述電子裝置包含但是不限於個人電腦、伺服器、智慧型手機、電子平板電腦、遊戲主機(game console)、電子郵件裝置之類等。在一些實施方式中,系統架構600可以包含一或多個處理器602、一或多個輸入裝置604、一或多個顯示裝置606、一或多個網路介面608,以及一或多個電腦可讀媒體(computer-readable medium)610。每個上述的元件都可以由匯流排(bus)612耦接。
顯示裝置606可以為任何已知的顯示技術,上述顯示技術包含但不限於使用液晶顯示器(Liquid Crystal Display (LCD))的顯示裝置,或是使用發光二極體(Light Emitting Diode (LED))技術的顯示裝置。處理器602可以使用任何已知的處理器技術,上述處理器技術包含但不限於圖形處理器(graphics processor)及多核心處理器(multi-core processor)。輸入裝置604可以為任何已知的輸入裝置技術,上述輸入裝置技術包含但不限於一鍵盤(包含一虛擬鍵盤)、滑鼠、軌跡球(track ball),以及觸控式平板(touch-sensitive pad)或顯示器。匯流排612可以為任何已知的內部或外部匯流排技術,上述內部或外部匯流排技術包含但不限於工業標準架構 (Industry Standard Architecture (ISA))、增強工業標準架構(Enhanced Industry Standard Architecture (EISA))、週邊組件互連(Peripheral Component Interconnect (PCI))、PCI 快速版(PCI Express)、新總線(NuBus)、USB、序列ATA(Serial ATA),或火線(FireWire)。
電腦可讀媒體610可以為任何參與提供處理器602指令以執行的媒體,上述媒體包含但不限於非揮發性儲存媒體(例如,光碟(optical disk)、磁碟(magnetic disk)、快閃驅動碟(flash drive)等)或是揮發性媒體(例如,SDRAM、ROM等)。舉例來說,電腦可讀媒體(例如,儲存裝置、媒體,以及記憶體)可以包含含有一位元流(bit stream)的有線或無線訊號之類等。然而,當提到非暫態(non-transitory)電腦可讀媒體時,明確排除例如能量、載波(carrier signals)訊號、電磁波以及訊號本身的媒體。
電腦可讀媒體610可以包含多種用以執行作業系統614及應用程式620的指令,舉例來說,作業系統614及應用程式620可以為電腦程式。作業系統614可以為多使用者(multi-user)、多處理(multiprocessing)、多任務(multitasking)、多線(multithreading)、實時(real-time)的系統之類等。作業系統614執行基本工作,上述基本工作包含但不限於:識別來自輸入裝置604的輸入;傳送輸出至顯示裝置606;追蹤電腦可讀媒體610上的檔案及目錄;控制周邊裝置(例如,磁碟機(disk drives)、印表機等),上述周邊裝置可以直接控制或是經由一輸入/輸出控制器控制;以及管理匯流排612上的訊務(traffic)。電腦可讀媒體610可以包含多種用以執行韌體流程的指令,舉例來說,上述韌體流程可以為一BIOS。電腦可讀媒體610可以包含多種指令,上述指令用以執行任何在此描述的流程,上述流程至少包含第2圖的流程200、第3圖的流程300或第4圖的流程400。
記憶體618可以包含高速隨機存取記憶體(high-speed random access memory)且/或非揮發性記憶體,舉例來說,高速隨機存取記憶體且/或非揮發性記憶體可以為一或多個磁碟儲存裝置(magnetic disk storage device)、一或多個光儲存裝置(optical storage device),且/或快閃記憶體(flash memory)(例如,NAND、NOR)。記憶體618(例如,電腦可讀儲存裝置、媒體,以及記憶體)可以包含含有一位元流的有線或無線訊號之類等。然而,當提到非暫態電腦可讀媒體時,明確排除例如能量、載波訊號、電磁波以及訊號本身的媒體。記憶體618能夠可以儲存一作業系統,舉例來說,上述作業系統可以為Darwin、RTXC、UNIX、OS X、WINDOWS,或是一嵌入式作業系統(embedded operating system),上述嵌入式作業系統例如為VxWorks。
系統控制器622可以為獨立於處理器602操作的一服務處理器(service processor)。在一些實施方式中,系統控制器622可以為一BMC。舉例來說,一BMC為一特殊化(specialized)服務處理器,上述特殊化服務處理器使用感測器(sensor)監控電腦、網路伺服器,或是其他硬體裝置的實體狀態,並經由獨立的連接與系統管理者(administrator)通訊。上述BMC配置在被監控裝置的基板或主電路板上。BMC的上述感測器可以測量內部的物理變數,舉例來說,上述內部的物理變數可以為溫度、濕度、電源供應電壓、風扇速度、通訊參數,以及作業系統功能。
以上描述的特徵可以在一或多個電腦程式中有利地執行,上述一或多個電腦程式可以在一可程式化系統上執行,上述可程式化系統至少包含一可程式化處理器(programmable processor),上述可程式化處理器耦接一資料儲存系統、至少一輸入裝置,以及至少一輸出裝置,以接收及傳送資料及指令。一電腦程式為指令的集合,上述指令可以被直接或間接地使用在一電腦中,以執行一特定的活動或帶來一特定的結果。一電腦程式可以以程式語言(例如,物件導向C(Objective-C)、Java、Python)的任何形式撰寫,包含已編譯(compile)或已直譯(interpret)的語言。並且上述電腦程式可以以任何形式部署,包含一模組、元件、子程式(subroutine),或其他適合使用於一計算環境中的單位。
適合用以執行指令的一程式的處理器,以範例說明包含電腦的任何種類一般及特殊用途微處理器,以及單一處理器,或多個處理器或核心中的一個。一般來說,一處理器會接收指令及資料,上述指令及資料來自一唯讀記憶體(read-only memory)、一隨機存取記憶體,或以上兩者。一電腦的必要元件為用以執行指令的一處理器,以及用以儲存指令及資料的一或多個記憶體。一般來說,一電腦也會包含用以儲存資料檔案的一或多個大量儲存裝置(mass storage device) ,或是操作性地耦接大量儲存裝置以進行通訊;上述大量儲存裝置包含磁碟,上述磁碟例如為內部硬碟及可移磁碟(removable disk);磁光碟(magneto-optical disks);以及光碟。適合有形地體現的電腦程式指令及資料的儲存裝置包含所有形式的非揮發性記憶體,上述非揮發性記憶體以範例說明包含可抹除可程式唯讀記憶體(erasable programmable read only memory(EPROM))、電氣可抹除可程式唯讀記憶體(electrically erasable programmable read only memory (EEPROM)),以及快閃記憶體裝置;磁碟,上述磁碟例如為內部硬碟及可移磁碟;磁光碟;以及CD-ROM盤及DVD-ROM盤。上述處理器及上述記憶體可以由應用特定積體電路(application-specific integrated circuits(ASICs))輔助,或是併入ASICs。
為了提供與一使用者的互動,以上特徵可以在一電腦上執行。上述電腦具有用以向使用者顯示訊息的一顯示裝置,以及一鍵盤及一指標裝置(pointing device),使用者可以由上述鍵盤及指標裝置提供輸入至上述電腦。舉例來說,上述顯示裝置可以為一陰極射線管(cathode ray tube(CRT))螢幕或液晶顯示器(LCD)螢幕,上述指標裝置可以為一滑鼠或一軌跡球。
以上特徵可以在一計算系統中執行,上述計算系統包含一後端(back-end)元件、一中介 (middleware)元件、一前端(front-end)元件,或是其中任何組合。舉例來說,上述後端元件可以為一資料伺服器。上述中介元件可以為一應用程式伺服器或一網際網路伺服器。上述前端元件可以為一客戶端電腦(client computer),上述客戶端電腦具有一圖形化使用者介面或是一網際網路瀏覽器(Internet browser)。上述計算系統的元件可以由任何數位資料的形式或媒體連接,上述數位資料的形式或媒體例如為一通訊網路(communication network)。上述通訊網路的範例包含一區域網路(local area network(LAN))、一廣域網路(wide area network(WAN)),以及組成網際網路的電腦及網路。
上述計算系統可以包含用戶及伺服器。一般來說,一用戶及伺服器互相為遠端(remote)的,並且通常經由一網路互動。用戶及伺服器的關係由在各自電腦上執行的程式的效力建立,並且彼此具有用戶-伺服器的關係。
揭露的實施例的一或多個特徵或步驟可以使用一應用程式介面(application programming interface(API))執行。一API可以定義一或多個參數,上述一或多個參數在一呼叫的應用程式(calling application)及其他軟體碼間傳送(例如一作業系統、庫存程式(library routine)、函數(function)),上述軟體碼提供一服務、提供資料,或是執行一操作或計算。
上述API可以在程式碼中執行一或多個呼叫(call),上述程式經由參數串列(parameter list)或是其他基於一呼叫慣例(call convention)的結構傳送或接收一或多個參數,上述呼叫慣例定義於一API規格文件內。一參數可以為一常數(constant)、一金鑰(key)、一資料結構(data structure)、一物件(object)、一物件類別(object class)、一變數(variable)、一資料型態(data type)、一指標(pointer)、一矩陣(array)、一串列(list),以及其他呼叫。API呼叫及參數可以在任何程式語言內執行。上述程式語言可以定義程式設計員用來存取支援上述API的函數的詞彙(vocabulary)及呼叫慣例。
在一些實施方式中,一API呼叫可以向一應用程式回報一裝置運行上述應用程式的能力,舉例來說,上述能力可以為輸入能力、輸出能力、處理能力、電源能力、通訊能力之類等。
實施例的上述內容,包含示意性的實施例,只為示意說明及描述的目的而呈現, 並不應該用以對所揭露內容的詳細形式做出細節解釋或限制。其中的多個修改、調整及使用對於本領域的技術人員而言將十分明顯。根據本揭露可以對揭露的實施例做出多個改變,而不偏離本揭露的精神或範圍。因此,本揭露的廣泛性及範圍不應該被限制於任何以上描述過的實施方式。
雖然本發明實施例已經參照一或多個實施方式示意說明及描述,本技術領域的其他技術人員在閱讀及理解本詳細說明及附屬的圖式時,將想到或知道相等的改動及修改。此外,雖然本發明的一特定特徵可能已經參照一些實施方式中的一個揭露,那樣的特徵可以和一或多個其他實施方式的其他特徵結合,並且在任何給定的或特定的應用中可能是有需要或是有利的。
除非特別聲明且在適當的地方,在此使用的單數包含複數,且反之亦然。「包含」這個詞意思是「包含但不限於」。此外,用來表示近似的詞,例如「大約」、「幾乎」、「大致上」、「大概」及相似的詞在此可以被用以代表「在」、「附近」、「幾乎在」、「在3-5%內的」、「在可接受的製造容忍範圍內」或其中任何邏輯上的組合。同樣地,「垂直」或「水平」這些詞分別額外包含「在垂直或水平方向的3-5%內」。此外,表示方向的詞,例如「頂端」、「底部」、「左」、「右」、「以上」,以及「以下」意思是與參考圖式中描述的等效方向有關;應該以被參考的物體或元素為基準,根據上下文理解方位,例如以一個物體或元素通常被使用的位置為基準;或是根據在此的其他描述。
除非另外定義,在此使用的所有術語(包含技術及科學術語)與本技術領域中具有通常技術的人所理解的一樣。進一步而言,術語應該被解釋為具有和術語在先關技術背景下的意義一致的意義,且除非在此明確定義,不被以理想化或過度型式(formal)的方式解釋。舉例來說,上述術語可以為定義於一般使用的字典中的那些術語。
來自以下任何請求項1-20中的一或多個一或多個元件或面向或步驟,或是其中任何部分,可以與來自以下任何請求項1-20中的一或多個一或多個元件或面向或步驟,或是其中任何部分結合,以組成本揭露的一或多個額外實施方式且/或請求項。
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:系統控制器
說明書的內容參照以下附帶的圖式。在以下附帶的圖式中,不同的圖式使用相似的參考號碼旨在示意說明相似或類比的元件。 第1圖為一示意的方塊圖,根據本揭露的特定面向描述了用以產生、部署(deploy),且/或使用效能模式(performance mode)BIOS組態的計算環境。 第2圖為一流程圖,根據本揭露的特定面向描述了用以產生效能模式BIOS組態的流程。 第3圖為一流程圖,根據本揭露的特定面向描述了用以顯示及執行效能模式BIOS組態的一流程。 第4圖為一多系統(multi-system)流程圖,根據本揭露的特定面向描述了用以共用及執行效能模式BIOS組態的一流程400。 第5圖為根據本揭露的特定面向的一範例的圖形化使用者介面(graphical user interface(GUI)),上述範例的圖形化使用者介面用在BIOS設置公用程式。 第6圖為一範例的系統架構的方塊圖,上述系統架構用以執行本揭露的特徵及流程。
100:計算環境
102:伺服器
104:資料庫
106:BIOS組態條目
108:韌體封包
110:組態負載
112:韌體資料
114:網路
116:計算系統
118:設定分析模組
120:韌體產生模組
122:分析系統
124:BIOS記憶體
126:基板管理控制器(BMC)
128:管理系統
130:基板管理控制器(BMC)記憶體

Claims (10)

  1. 一種電腦執行的方法,用以產生一組態資料庫,包含:接收與啟動一計算系統有關的一或多個效能參數,上述計算系統具有一硬體組態,其中上述計算系統使用一基本輸入/輸出系統(BIOS)啟動;辨識與上述一或多個效能參數有關的一BIOS設定的集合,上述BIOS設定的集合會影響上述一或多個效能參數;辨識已辨識出的上述BIOS設定的集合中BIOS設定值的多個唯一的組合,上述BIOS設定的集合與上述一或多個效能參數有關;對每個上述多個唯一的組合分析上述一或多個效能參數,以產生一分析資料,上述分析資料包含每個上述多個唯一的組合的已測量的上述一或多個效能參數;根據至少一部份上述分析資料決定上述多個唯一的組合的一被選擇的組合;以及將與上述一或多個效能參數關聯的上述被選擇的組合進行儲存。
  2. 如請求項1之電腦執行的方法,其中對每個上述多個唯一的組合分析上述一或多個效能參數的操作包含:接收與一活動的計算系統有關的一BIOS組態資料;接收與上述活動的計算系統有關的一效能資料;辨識與上述活動的計算系統有關的上述BIOS組態資料是否符 合上述多個唯一的組合其中的一個;以及當辨識到與上述活動的計算系統有關的上述BIOS組態資料匹配於上述多個唯一的組合中之一者時,使用上述多個唯一的組合中上述匹配者所接收到的上述效能資料。
  3. 如請求項1之電腦執行的方法,更包含:將上述被選擇的組合封包於一組態負載中;以及傳送上述組態負載,其中當上述計算系統接收到上述組態負載時,致使上述BIOS呈現一組態預設,當上述組態預設被選擇時,致使上述BIOS使用上述被選擇的組合啟動。
  4. 如請求項3之電腦執行的方法,更包含將至少一個修改的組合封包於上述組態負載中,其中當上述計算系統接收到上述組態負載時,更致使上述BIOS呈現至少一個額外的組態預設,當上述至少一個修改的組合中的一者被選擇時,致使上述BIOS使用上述至少一個修改的組合中對應的一個啟動。
  5. 一種電腦執行的方法,包含:由一計算系統的一基本輸入/輸出系統(BIOS)韌體存取一基板管理控制器(BMC)記憶體;辨識上述BMC記憶體中的一或多個組態負載,其中每個上述一或多個組態負載包含多個BIOS設定值的一唯一的組合,上述BIOS設定值的上述唯一的組合被建立以優化一效能參數或上述效能參數的集合;呈現一BIOS設置公用程式,其中呈現上述BIOS設置公用程式的操作包含將每個上述一或多個組態負載作為一各別的組態預 設呈現;接收一使用者選擇,以選擇一被選擇的組態預設,上述被選擇的組態預設與上述一或多個組態負載中的一被選擇的組態負載有關;以及執行上述被選擇的組態預設,其中執行上述被選擇的組態預設的操作包含使用上述被選擇的組態負載的上述BIOS設定值的上述唯一的組合啟動上述計算系統。
  6. 如請求項5之電腦執行的方法,更包含在接收上述使用者選擇之前,從一BIOS記憶體載入一目前的BIOS組態,其中執行上述被選擇的組態預設的操作更包含:將上述目前的BIOS組態複製至上述BMC記憶體中;以及使用上述被選擇的組態負載覆蓋上述BIOS記憶體中的上述目前的BIOS組態,其中使用上述被選擇的組態負載的上述BIOS設定值的上述唯一的組合啟動上述計算系統的操作包含使用儲存於上述BIOS記憶體中的上述被選擇的組態負載啟動上述計算系統。
  7. 如請求項6之電腦執行的方法,更包含:在上述計算系統啟動期間,使用儲存於上述BIOS記憶體中的上述被選擇的組態負載偵測一錯誤;藉由將上述目前的BIOS組態從上述BMC記憶體複製至上述BIOS記憶體中,使得上述目前的BIOS組態覆蓋儲存於上述BIOS記憶體中的上述被選擇的組態負載;以及使用從上述BMC記憶體複製至上述BIOS記憶體中的上述目前的BIOS組態啟動上述計算系統。
  8. 如請求項5之電腦執行的方法,更包含:接收一使用者輸入,上述使用者輸入指示一或多個修改的BIOS設定值;根據至少一部份接收到的上述使用者輸入產生一使用者配置BIOS組態;以及將上述使用者配置BIOS組態作為上述一或多個組態負載中的一者儲存於上述BMC記憶體中。
  9. 一種計算系統,包含:一基板管理控制器(BMC),上述BMC具有一BMC記憶體;一使用者輸入裝置;一或多個資料處理器;以及一記憶體,上述記憶體耦接上述一或多個資料處理器,並且上述記憶體中儲存有一機器可讀指令,上述記憶體包含基本輸入/輸出系統(BIOS)記憶體,上述BIOS記憶體用以儲存多個BIOS設定值,其中當上述機器可讀指令由上述一或多個資料處理器執行時,致使上述一或多個資料處理器執行:存取上述BMC記憶體;辨識上述BMC記憶體中的一或多個組態負載,其中每個上述一或多個組態負載包含上述多個BIOS設定值的一唯一的組合,上述BIOS設定值的上述唯一的組合被建立以優化一效能參數或上述效能參數的集合;呈現一BIOS設置公用程式,其中呈現上述BIOS設置公用程式 的操作包含將每個上述一或多個組態負載作為一各別的組態預設呈現;經由上述使用者輸入裝置接收一使用者選擇,以選擇一被選擇的組態預設,上述被選擇的組態預設與上述一或多個組態負載中的一被選擇的組態負載有關;以及執行上述被選擇的組態預設,其中執行上述被選擇的組態預設的操作包含使用上述被選擇的組態負載的上述多個BIOS設定值的上述唯一的組合啟動上述計算系統。
  10. 如請求項9之計算系統,其中上述一或多個資料處理器執行所執行的操作更包含在接收上述使用者選擇前,從上述BIOS記憶體載入一目前的BIOS組態,其中執行上述被選擇的組態預設的操作更包含:將上述目前的BIOS組態複製至上述BMC記憶體中;以及使用上述被選擇的組態負載覆蓋上述BIOS記憶體中的上述目前的BIOS組態,其中使用上述被選擇的組態負載的上述多個BIOS設定值的上述唯一的組合啟動上述計算系統的操作包含使用儲存於上述BIOS記憶體中的上述被選擇的組態負載啟動上述計算系統。
TW111113415A 2022-01-18 2022-04-08 電腦執行的方法及計算系統 TWI832201B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/577,752 US11941410B2 (en) 2022-01-18 2022-01-18 BIOS performance mode configuration deployment
US17/577,752 2022-01-18

Publications (2)

Publication Number Publication Date
TW202331515A TW202331515A (zh) 2023-08-01
TWI832201B true TWI832201B (zh) 2024-02-11

Family

ID=87161816

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111113415A TWI832201B (zh) 2022-01-18 2022-04-08 電腦執行的方法及計算系統

Country Status (4)

Country Link
US (1) US11941410B2 (zh)
JP (1) JP7389866B2 (zh)
CN (1) CN116501391A (zh)
TW (1) TWI832201B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201610850A (zh) * 2014-09-08 2016-03-16 廣達電腦股份有限公司 用於管理電腦系統中之基本輸入輸出系統組態之方法、管理裝置、及電腦可讀取媒體
TWI537748B (zh) * 2015-02-25 2016-06-11 廣達電腦股份有限公司 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體
US20210083934A1 (en) * 2017-07-14 2021-03-18 Quanta Cloud Technology Inc. Mechanism for hardware configuration and software deployment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003001B2 (en) * 2010-03-15 2015-04-07 Cisco Technology, Inc. Bios parameter virtualization via BIOS configuration profiles
US9128729B1 (en) * 2014-09-08 2015-09-08 Quanta Computer Inc. System and method for automatically configuring bios performance profiles
US10802833B2 (en) 2018-09-28 2020-10-13 Intel Corporation Automated preboot performance measurement
JP6730716B2 (ja) 2018-10-23 2020-07-29 Necプラットフォームズ株式会社 情報処理装置、ファームウェア設定変更方法、及びプログラム
US11637748B2 (en) * 2019-08-28 2023-04-25 Microstrategy Incorporated Self-optimization of computing environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201610850A (zh) * 2014-09-08 2016-03-16 廣達電腦股份有限公司 用於管理電腦系統中之基本輸入輸出系統組態之方法、管理裝置、及電腦可讀取媒體
TWI537748B (zh) * 2015-02-25 2016-06-11 廣達電腦股份有限公司 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體
TW201631498A (zh) * 2015-02-25 2016-09-01 廣達電腦股份有限公司 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體
US20210083934A1 (en) * 2017-07-14 2021-03-18 Quanta Cloud Technology Inc. Mechanism for hardware configuration and software deployment

Also Published As

Publication number Publication date
US20230229453A1 (en) 2023-07-20
JP7389866B2 (ja) 2023-11-30
TW202331515A (zh) 2023-08-01
US11941410B2 (en) 2024-03-26
CN116501391A (zh) 2023-07-28
JP2023104857A (ja) 2023-07-28

Similar Documents

Publication Publication Date Title
CN104603750B (zh) 使用bpram来布局和执行软件应用
US11550564B1 (en) Automating application of software patches to a server having a virtualization layer
US8862633B2 (en) System and method for efficiently building virtual appliances in a hosted environment
US8176094B2 (en) System and method for efficiently building virtual appliances in a hosted environment
US20200028935A1 (en) Workload rebalancing in heterogeneous resource environments
US7577722B1 (en) Provisioning of computer systems using virtual machines
US7797507B2 (en) Virtual machine system and operating method thereof
CN101794235B (zh) 基于操作系统网络驱动的无盘计算机启动方法
US8473588B2 (en) Local and remote client computer system booting
JP6259459B2 (ja) Bpramを使用したオペレーティング・システムのレイアウトおよび実行
US20140258701A1 (en) Computing platform performance management with ras services
CN102207896A (zh) 虚拟机崩溃文件生成技术
US9965288B2 (en) Preconfiguring hardware and speeding up server discovery prior to bios boot
US7234055B2 (en) Computer operating booting system making use of multi-buttons
US20110246714A1 (en) Migrating client operating systems to remote storage
TWI832201B (zh) 電腦執行的方法及計算系統
US20210389994A1 (en) Automated performance tuning using workload profiling in a distributed computing environment
Clerc et al. Os streaming deployment
US9087040B2 (en) Method and apparatus for performing host based diagnostics using a service processor
Wu et al. Power Saving for Fast Deployment Private Cloud Toolkit-Ezilla with Infrastructure Services