TWI824558B - 用以存取資料之方法 - Google Patents
用以存取資料之方法 Download PDFInfo
- Publication number
- TWI824558B TWI824558B TW111121835A TW111121835A TWI824558B TW I824558 B TWI824558 B TW I824558B TW 111121835 A TW111121835 A TW 111121835A TW 111121835 A TW111121835 A TW 111121835A TW I824558 B TWI824558 B TW I824558B
- Authority
- TW
- Taiwan
- Prior art keywords
- request
- computer system
- bios
- registers
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000012360 testing method Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 9
- 101000686246 Homo sapiens Ras-related protein R-Ras Proteins 0.000 description 6
- 102100024683 Ras-related protein R-Ras Human genes 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 102000016914 ras Proteins Human genes 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
數種用以存取資料之方法及系統係揭露在一電腦系統的一開機自我測試期間,啟動一預登錄處理程序,預登錄處理程序用以對電腦系統的一基本輸入輸出系統(basic input output system,BIOS)中的一或多個暫存器執行存取、調整、或其組合。在電腦系統之一作業系統的運行期間,接收對BIOS中的此一或多個暫存器之至少一暫存器執行存取、調整、或其組合之一請求。利用預登錄處理程序處理請求,以對應於請求對BIOS中之此一或多個暫存器之此至少一暫存器執行存取、調整、或其組合。基於由預登錄處理程序所取得之來自此至少一暫存器的資料,提供對應於請求之一回應。
Description
本發明大體上是有關於提供對電腦系統中之資料的存取。更特別是,本揭露之數個方面有關於一種利用一預登錄處理程序(pre-registered handler)來存取資料的系統及方法。
伺服器係大量使用於高需求的應用中,例如是基於網路的系統或資料中心。雲端運算應用之出現係增加對資料中心的需求。資料中心具有眾多的伺服器,伺服器儲存資料及執行由遠端連接之使用者所存取的應用。典型的資料中心具有附帶電源及通訊連接之物理性的料架結構(rack structures)。各料架可承載多個應用伺服器(application servers)及儲存伺服器。各伺服器大體上包括硬體元件,例如是處理器、記憶體裝置、網路介面卡、電源供應器、及其他專用硬體。各伺服器一般包括基板管理控制器(baseboard management controller,BMC),管理伺服器之操作及傳送操作資料至管理料架之伺服器的中央管理站。
典型的伺服器具有處理單元(舉例為中央處理單元(central processing unit,CPU)),可具有多個計算操作之核心。此些核心執行作業系統(operating system,OS),以與伺服器中的其他硬體元件進行通訊。
系統管理模式(system management mode,SMM)係為周知的專用操作模式,提供而用以處理全系統(system-wide)功能,例如是電腦系統中的電源管理或系統硬體控制。SMM提供明確及簡易可獨立之處理器環境來對作業系統、或管理及軟體應用進行透明地操作。處理單元執行在個別的位址空間中的SMM韌體碼,處理單元之其他模式不可存取SMM韌體碼。SMM僅可經由系統管理中斷(system management interrupt,SMI)進入。
SMM為韌體/BIOS的一種操作模式,以在OS執行時執行系統管理操作。在運行(runtime)期間,CPU偵測事件及產生SMI訊號,而觸發CPU以藉由跳到SMM進入點的方式進入SMM。當進入SMM時,全部之核心/執行緒亦進入SMM模式,直到系統管理操作完成。
在許多處理器架構中,中斷程序用以減少來自記憶體、介面、處理器、或周邊裝置之請求的等待時間。一般來說,SMI係經由軟體或硬體觸發。中斷處理程序藉由韌體做為硬體抽象層(hardware abstraction layer,HAL)之一部分來執行,HAL亦包括BIOS。中斷處理程序觸發SMI。OS的執行係在SMI中斷發生時暫停。與SMI相關的資料通常儲存於暫存器中,例如是執行SMM之CPU中的模組特定暫存器(Model Specific Register,MSP)。當SMM執行時,系統服務及應用係停止且不能提供服務,而致使電腦系統停機。
電腦系統可能亦具有一些設計上難以取得資料(hard-to-access data)(舉例為與可靠性、可用性和可維護性
(Reliability,Availability,Serviceability(RAS))相關之狀態及設定),這些資料一般需要外部工具或像是SMM之特定條件來取得,且對於使用者而言不太友善。再者,某些系統設定需電腦系統進行重置以完成變更,而導致在運行中有無法存取的時段、停止系統提供服務。
第1圖繪示用以調整電腦系統中之系統設定的程序,特別是調整BIOS設定。起先,當首先開啟電腦系統時,執行步驟101。特別是,電腦系統進行開機自我測試(Power On Self-Test,POST)。在POST期間,使用者可簡易地調整系統設定,包括例如是步驟103之BIOS設定。然而,在步驟103完成,及POST完成之後,程序100繼續進行到步驟105,電腦系統的OS係開始,而致使OS之運行。
在步驟105的運行期間的一些時點,使用者可能想要進行步驟107之存取或改變BIOS設定。然而,為了取得此些存取或產生此些改變,使用者必須執行步驟109之重置電腦系統以回復到步驟101的POST。此舉係導致不想要的電腦系統之停機。
因此,對於提供一種能夠使電腦系統設定(例如是BIOS設定)較簡易存取及調整的系統及方法係有需求。
詞語實施例及類似之詞語欲廣泛地意指本揭露及下方之申請專利範圍的標的。包含此些詞語的說明不應理解為對此處所述標的之限制或對下方之申請專利範圍的範疇的限制。此處所含括的本揭露之實施例係由下方之申請專利範圍定義,並非此發明內容。此發明內容係為本揭露之數種方面的高程度概述,及引入一些將在下方之
實施方式部分中更進一步說明的概念。此發明內容不意欲識別所請求之標的之關鍵或本質特徵。此發明內容亦不意欲獨立使用來決定所請求之標的之範圍。標的應參照本揭露之整份說明書、任何或全部圖式、及各請求項的適當部分來理解。
根據本揭露之一實施例,一種用以存取資料之方法係揭露而包括在一電腦系統的一開機自我測試期間,啟動一預登錄處理程序,預登錄處理程序用以對電腦系統的一基本輸入輸出系統(basic input output system,BIOS)中的一或多個暫存器執行存取、調整、或其組合。此方法更包括在電腦系統之一作業系統的運行期間,接收對BIOS中的此一或多個暫存器之至少一暫存器執行存取、調整、或其組合之一請求。此方法更包括利用預登錄處理程序處理請求,以對應於請求對BIOS中之此一或多個暫存器之此至少一暫存器執行存取、調整、或其組合。此方法更包括基於由預登錄處理程序所取得之來自此至少一暫存器的資料,提供對應於請求之一回應。
根據上述實施例之一方面,請求係從一基板管理控制器(baseboard management controller,BMC)接收。回應係提供至BMC。發出請求的一使用者係藉由BMC的一智慧平台管理介面(intelligent platform management interface,IPMI)接收回應。請求可來自一IPMI命令。
根據上述實施例之另一方面,請求可由電腦系統的作業系統接收。BIOS可藉由儲存表示回應之資訊於作業系統及BIOS可存取之一特定位置中來提供回應。
根據上述實施例之另一方面,此一或多個暫存器與在作業系統之運行期間不能讀取或寫入之難以存取資料(hard-to-access data)相關。
根據上述實施例之另一方面,此方法可更包括根據致使此至少一暫存器進行調整之請求,重新啟動電腦系統,此至少一暫存器進行此調整係需要重新啟動電腦系統。
根據本揭露之另一實施例,一種電腦系統包括一基本輸入輸出系統(basic input output system,BIOS)。BIOS係裝配來執行數個電腦可讀取指令,以在電腦系統的一開機自我測試(power-on self-test)期間,啟動一預登錄處理程序(pre-registered handler),預登錄處理程序用以對BIOS中的一或多個暫存器執行存取、調整、或其組合。BIOS更裝配來執行此些電腦可讀取指令,以在電腦系統之一作業系統的運行期間,接收對此一或多個暫存器之至少一暫存器執行存取、調整、或其組合的一請求。BIOS更裝配來執行此些電腦可讀取指令,以利用預登錄處理程序處理請求,以對應於請求對此一或多個暫存器之此至少一暫存器執行存取、調整、或其組合。BIOS更裝配來執行此些電腦可讀取指令,以基於由預登錄處理程序所取得之來自此至少一暫存器的資料,提供對應於請求之一回應。
根據上述實施例之一方面,電腦系統更包括一基板管理控制器(baseboard management controller,BMC)。請求可從基板管理控制器接收。回應可提供至BMC。發出請求的使用者可藉由BMC
的一智慧平台管理介面(intelligent platform management interface)接收回應。請求可來自一智慧平台管理介面命令。
根據上述實施例之一方面,電腦系統更包括一記憶體以及一中央處理單元,中央處理單元執行儲存於記憶體之數個電腦可讀取指令,以執行一作業系統。請求係從電腦系統之作業系統接收。
根據上述實施例之一方面,BIOS藉由儲存表示回應之資訊於記憶體中之作業系統及BIOS可存取的一特定位置中來提供回應。根據上述實施例之一方面,此一或多個暫存器與在作業系統之運行期間不能讀取或寫入之難以存取資料(hard-to-access data)相關。
根據本揭露之另一實施例,一種非暫態電腦可讀取媒體係揭露,非暫態電腦可讀取媒體具有儲存於其之藉由一電腦系統中的一處理器執行時的數個軟體指令。當藉由電腦系統中的處理器執行此些軟體指令時係致使處理器執行,以在電腦系統的一開機自我測試(power-on self-test)期間,啟動一預登錄處理程序(pre-registered handler),預登錄處理程序用以對電腦系統的一基本輸入輸出系統(basic input output system,BIOS)中的一或多個暫存器執行存取、調整、或其組合。當藉由電腦系統中的處理器執行此些軟體指令時係更致使處理器執行,以在電腦系統之一作業系統的運行期間,接收對BIOS中的此一或多個暫存器之至少一暫存器執行存取、調整、或其組合的一請求。當藉由電腦系統中的處理器執行此些軟體指令時係致使處理器執行,以利用預登錄處理程序處理請求,以對應於請求對BIOS中之此一或多個暫存器之此至少一暫存器執行存取、調整、或其組合。
當藉由電腦系統中的處理器執行此些軟體指令時係致使處理器執行,以基於由預登錄處理程序所取得之來自此至少一暫存器的資料,提供對應於請求之一回應。
上述的發明內容不意欲表示本揭露的各個實施例或每一個方面。前述的發明內容反而僅提供此處所提出的一些新穎方面及特徵的例子。上述的特徵及優點,以及本揭露之其他特徵及優點將在結合所附之圖式及所附的申請專利範圍下,透過下文之用以實現本發明的代表實施例及模式的詳細說明更為清楚易懂。有鑑於數種實施例的詳細說明,且詳細說明係參照簡短說明提供於下的圖式,此技術領域中具有通常知識者將更為清楚本揭露之額外方面。為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100,300,400,500:程序
101~109,301~313,401~421,501~519:步驟
200:電腦系統
210:中央處理單元(CPU)
212:基本輸入輸出系統(BIOS)
214:基板管理控制器(BMC)
216:作業系統(OS)
230:共享記憶體
232:非揮發性記憶體
234:BMC快閃記憶體
236:I/O埠
238:通用記憶體
260:系統管理中斷(SMI)處理程序
本揭露及其優點及圖式將從下方範例實施例的說明參照所附的圖式更佳的瞭解。此些圖式僅繪示出範例實施例,及因而不視為對數種實施例或申請專利範圍之範疇的限制。
第1圖繪示用以調整電腦系統中之BIOS設定的程序。
第2圖繪示根據本揭露數個方面之裝配以啟動預登錄處理程序之電腦系統的示意圖,預登錄處理程序用以存取或調整電腦系統中之BIOS設定。
第3圖繪示根據本揭露數個方面之用以啟動預登錄處理程序之程序,預登錄處理程序用以存取或調整電腦系統中之BIOS設定。
第4圖繪示根據本揭露數個方面之用以利用BMC啟動預登錄處理程序之程序,預登錄處理程序用以存取或調整電腦系統中之BIOS設定。
第5圖繪示根據本揭露數個方面之用以利用OS啟動預登錄處理程序之程序,預登錄處理程序用以存取或調整電腦系統中之BIOS設定。
在本發明係易於進行數種調整及替代形式的情況下,特定實施例係藉由圖式中之例子的方式示意,及將於此處更詳細地說明。然而,應理解的是,本發明係不意欲限制成所揭露的特定形式。本發明反而包括全部落入所附之申請專利範圍定義之精神及範疇中的調整、等效者、及替代者。
數種實施例係參照所附之圖式說明,其中類似的參考編號係通用於圖式來意指類似或相等的元件。圖式並非依照比例繪示,及僅提供以說明本發明。針對說明之目的,本發明的數個方面係參照範例應用說明於下文中。應理解的是,許多特定細節、關係、及方法係提出,以全面的理解本發明。然而,相關技術領域中具有通常知識者將輕易地認知本發明可在無需此些特定細節之一或多者下實現,或利用其他方法實現。在其他例子中,熟知的結構或操作不詳細地繪示出來,以避免模糊本發明。數種實施例不限於所說明之動作或事件的順序,因為某些動作可以不同的順序發生,及/或某些動作可與其他動作或事件同時進行。再者,實施根據本發明之方法並不需要所有說明的動作或事件。
舉例為摘要、發明內容、及實施方式部分中之所揭露但未明確於申請專利範圍中提出的元件及限制不應以暗示、推論、或其他方式單獨或共同併入申請專利範圍中。針對本實施方式之目的,除非特別聲明,單數型態包括複數型態且反之亦然。字詞「包括(including)」意味「在沒有限制下包括(including without limitation)」。再者,例如是「大約(about)」、「幾乎(almost)」、「實質上(substantially)」、「近似地(approximately)」、「大體上(generally)」、及類似者之近似字詞可於此處使用,以舉例為表示「在(at)」、「接近(near)」、或「幾乎在(nearly at)」、或「在3-5%中(within 3-5% of)」、或「在可接受之製造公差中(within acceptable manufacturing tolerances)」、或其任何邏輯組合。
本揭露之系統及方法包含裝配預登錄處理程序(pre-registered handler)於電腦系統的BIOS中。難以存取資料(Hard-to-access data)及對應之執行動作係在BIOS之程式編寫時定義於預登錄處理程序中。在預登錄處理程序啟動及POST完成之後,預登錄處理程序提供在運行(runtime)中存取及調整一些設定及難以存取資料的能力(舉例為僅SMM暫存器(SMM-only registers)、RAS相關暫存器等)。難以存取資料一般意指在運行中不能藉由一般暫存器工具或OS軟體讀取或寫入的資料。再者,或替代性的來說,難以存取資料需要外部工具或特定的條件來取得,像是SMM模式。其中一個例子係包括Intel SMM_ERR_SRC相關暫存器,其指示發布SMI訊號之處理器的對應核心或非核心部分及僅可在SMM模式中存取。此些通常需要
Intel硬體治具(hardware fixture)外部工具來存取,而對使用者來說並不友善。下表列出RAS相關暫存器之不同的存取形式及存取方法。
本揭露之此預登錄處理程序可藉由系統BMC或OS執行的軟體來觸發。一旦預登錄處理程序觸發,根據所請求的資料及回應於使用者所需的資訊可存取對應的暫存器及架構。
第2圖繪示電腦系統200之方塊圖,電腦系統200包括用以藉由預登錄處理程序存取及調整BIOS資訊的功能。於一或多個實施例中,電腦系統200係為伺服器,但此處揭露的準則可併入任何具有此處所述的元件之電腦系統中。電腦系統200包括中央處理單元(central processing unit,CPU)210、基本輸入輸出系統(basic input output system,BIOS)212、選擇之基板管理控制器(baseboard management controller,BMC)214、及作業系統(operating system,OS)216。
電腦系統200可包括共享記憶體230,可為靜態隨機存取記憶體(static random access memory,SRAM)。電腦系統200亦可包括非揮發性記憶體232,可為快閃記憶體或類似的裝置。電腦系統200可亦包括專用之BMC快閃記憶體234,儲存BMC韌體。於一或多個實施例中,非揮發性記憶體232可為相同於專用之BMC快閃記憶體234的快閃記憶體。亦可具有分開之快閃記憶體。BMC 214可亦存取寫入共享記憶體230中的資料。於一或多個實施例中,共享記憶體230可為映射(mapped)至系統記憶體之BMC晶片上的內部RAM,例如是從ASPEED取得之AST2500。
BIOS 212包括系統管理中斷(system management interrupt,SMI)處理程序260。在此例子中,SMI處理程序260處理系統管理中斷。
如上所解釋,系統管理模式(system management mode,SMM)係為在作業系統216運行時,藉由BIOS 212執行系統管理操作的操作模式。在電腦系統200之運行期間,CPU 210的晶片組偵測特定事件。此些事件可包括來自處理核心、記憶體裝置、周邊裝置、及可能觸發中斷之其他元件的通知,或來自電腦系統200之使用者的請求。在此例子中,特定事件發出SMI訊號。
電腦系統200可亦包括I/O埠236,用以接收透過一或多個I/O裝置及通用記憶體238之來自使用者的命令。通用記憶體238可包括或限制為電性可程式可抹除唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)。
第3圖繪示根據本揭露數個方面之啟動及使用電腦系統中之預登錄暫存處理程序的程序300,電腦系統例如是電腦系統200。
最初,在步驟301,執行電腦系統之開機自我測試(Power On Self-Test,POST)。在步驟303,在POST期間,電腦系統的BIOS啟動預登錄處理程序。預登錄處理程序係啟動,以在OS之運行期間進行電腦系統設定及難以存取資料的存取及調整的處理,電腦系統設定例如是BIOS設定。預登錄處理程序包括識別部分及執行部分。識別部分的存在是因為BIOS可能不知道何者觸發預登錄處理程序,如此一來,識別部分識別出哪個動作或哪個裝置觸發它以接著執
行對應程序。也就是說,識別係決定什麼條件會讓預登錄處理程序執行。
一旦POST及預登錄處理程序的啟動完成時,在步驟305開始電腦系統。除非另有說明,程序300的接續步驟係在運行期間發生。
在運行期間的某個時點,於步驟307之觸發預登錄處理程序的一動作係發生。如下所述,觸發預登錄處理程序之動作可為存取或調整BIOS中之資訊的請求。請求可源自於系統BMC或OS軟體,如下方更進一步的說明。舉例來說,請求係接收,以在電腦系統之作業系統的運行期間,對BIOS中的一或多個暫存器的至少一暫存器執行存取、調整、或其組合。
在步驟309,BIOS利用預登錄處理程序處理請求,以對應於請求對BIOS中之此一或多個暫存器的至少一暫存器執行存取、調整、或其組合。如上所述,預登錄處理程序包括識別部分與執行部分。識別部分係決定什麼條件會讓預登錄處理程序執行。當使用者例如是藉由IPMI命令或OS軟體發送在運行中存取特定設定之請求時,請求包括識別實際目的之參數,舉例為讀取錯誤狀態、寫入錯誤控制設定等。BIOS理解此些參數,所以BIOS可基於此些參數檢查或調整特定設定。
在步驟311,BMC IPMI或OS軟體係回應經由預登錄處理程序取得之來自BIOS的資料。因此,使用者從BIOS接收到所請求的資料。
在步驟313,電腦系統根據調整之發生是否需重置電腦系統來選擇地重置。舉例來說,對於沒有預登錄處理程序的傳統系統來說,在BIOS選單下之RAS相關設定的調整需要重置系統,以讓調整生效。對於具有預登錄處理程序之電腦系統200來說,除了部分的一次寫入暫存器(write-once registers)之外,預登錄處理程序允許在運行中調整大部分的RAS相關設定,而無須重置系統。對於該些一次寫入暫存器而言,仍需要重置系統,以讓預登錄處理程序的寫入動作生效。
下表列出一些可藉由預登錄處理程序實現之可能的命令。
如所揭露,預登錄處理程序可由BMC(舉例為BMC 214)或OS(舉例為OS 216)觸發。第4圖繪示根據本揭露數個方面之包含藉由BMC觸發之預登錄處理程序的程序400。
在步驟401,電腦系統開啟及執行POST。做為部分的步驟401及POST,且類似於程序300,在步驟403,BIOS啟動預登錄處理程序,用以對BIOS中之一或多個暫存器執行讀取、調整或其組合。如上所揭露,預登錄處理程序可在運行期間存取及調整設定及難以存取資料。
在步驟403之後,POST完成,及在步驟405電腦系統藉由執行作業系統進入運行時間。除非另有說明,程序400的接續步驟係發生在運行期間。
在步驟407,使用者送出命令,以檢查或調整BIOS中的設定。在一或多個實施例中,使用者可通過智慧平台管理介面(intelligent platform management interface,IPMI)送出命令,例如是原始設備製造商(original equipment manufacturer,OEM)IPMI。命令係送至BMC。
IPMI命令係為由IPMI規格所定義之許多數位數字的組合。然而,OEM IPMI命令可具有額外的需求或不同的特定設定,其通常於此意指為OEM IPMI指令。BIOS及BMC兩者可遵循OEM IPMI之設計碼(design coding)。
在步驟409,基於OEM IPMI命令,BMC產生及送出系統管理中斷(system management interrupt,SMI)訊號及使用者請求至BIOS。SMI訊號包括使用者之請求中的資訊。特別是,在BMC收到OEM IPMI命令之後,BMC瞭解使用者想要存取僅SMM存取暫存器(SMM-access-only register)。因此,BMC藉由特定硬體訊號向系統觸發SMI,例如是通用輸入/輸出(General-Purpose input/output,GPIO)。
在步驟411,基於所接收的SMI訊號與使用者之請求,BIOS檢查請求中的所請求的資料。特別是,在接收SMI之後,電腦系統進入SMM,以呼叫BIOS SMM處理程序來檢查特定硬體訊號是否有效(active)。
在步驟413,根據經由預登錄處理程序之來自BMC之接收於SMI中的所請求的資料,BIOS存取對應之暫存器及架構,及預登錄處理程序必須事先登錄於POST中。
在步驟415,BIOS回應所請求的資訊至BMC。
在步驟417,BMC接收來自BIOS的資料。
在步驟419,OS接收來自BMC的回應。使用者可檢查用以調整之OEM IPMI命令的回應。舉例來說,OEM IPMI回應可設計而以遵循完成碼(completion code)之資料所組成。資料可包括由使用者檢查之數值,及完成碼可表示調整是否成功。
在步驟421,電腦系統根據調整是否有需求來選擇地重置以完成任何可能已經發生的調整,其中儘管利用預登錄處理程序,
此種調整仍需重置系統。如上所討論,對於沒有預登錄處理程序之傳統電腦系統來說,透過BIOS選單之RAS相關設定的調整需要重置系統,以讓調整生效。對於本揭露之具有預登錄處理程序的電腦系統來說,除了部分的一次寫入暫存器(write once registers)之外,電腦系統可在運行中調整大部分的RAS相關設定。
第5圖繪示根據本揭露數個實施例之包含藉由軟體碼或功能觸發之預登錄處理程序的程序500。
在步驟501,電腦系統開啟及執行POST。做為部分的POST,步驟503係執行,其中BIOS啟動預登錄處理程序,類似於上述之步驟303及403。
在步驟503之後,POST完成,及在步驟505電腦系統藉由執行作業系統進入運行時間。除非另有說明,程序500的接續步驟係發生在運行期間。
在POST之後及電腦系統之運行期間,當使用者送出請求資料至特定位置以檢查或調整架構時,程序500係繼續進行到步驟507。特定位置係某個儲存請求資料的位置,及BIOS可從該位置存取資料。舉例來說,該位置可為特定I/O位置、記憶體位置、或NVRAM位置、或OS及BIOS兩者皆可存取資料的任何位置。
作為回應,在步驟509,OS軟體觸發軟體SMI。軟體SMI由OS軟體經由I/O存取指定位置來觸發。BIOS定義出指定位置,及位置資訊從ACPI表提交給OS。ACPI表讓OS瞭解硬體架構等級資料(hardware configuration level data)。
在步驟511,BIOS存取與請求相關之特定位置。因為BIOS存取特定位置,該位置係編碼至預登錄處理程序之識別部分中。
在步驟513,BIOS存取或調整對應之暫存器及架構。除了執行時點總是在運行中,及執行處理程序的運行時間必須預先登錄於POST中之外,此步驟可相同於上方之第4圖中的對應步驟413。
在步驟515,BIOS儲存所需之資訊至特定位置。
在步驟517,OS軟體從特定位置存取資料。
在步驟519,電腦系統根據調整是否有需求來選擇地重置以使更改生效。如上所述,在重置之後,某些暫存器可藉由軟體讀取及僅可藉由軟體寫入一次。對於該些一次寫入暫存器(write-once registers)來說,需要進行系統重置,以讓預登錄處理程序的寫入動作生效。
基於前述,預登錄處理程序係讓檢查或調整一些特定設定可在無需外部工具或重置系統下實現,而最終使得系統架構、錯誤分類(error triage)等更為簡單。藉由避免在特定架構改變時需要重置系統,本發明更減少系統停機,而讓存取特定暫存器(僅SMM暫存器(SMM-only registers))更加簡易,及提供較佳的錯誤分類的體驗。
在僅針對以圖式示例及說明之目的下,提出了包括所繪示實施例之實施例的前述說明,但非意欲全面地說明或限制成所述的精準形式。此技術領域中具有通常知識者將明瞭數種調整、改變、及其使用。
雖然所揭露的實施例已經參照一或多個實施例以圖式示例及說明,基於閱讀及瞭解本說明書及所附的圖式,此技術領域中具有通常知識者將可進行或知悉等效之變更及調整。此外,當本發明的特定特徵可能僅參照數種實施例的一者揭露時,此種特徵可因任何給定或特定應用的需求及優點而結合其他實施例之一或多個其他特徵。
在本發明之數種實施例已經說明於上文的情況下,應理解的是,它們僅藉由例子的方式呈現出來,且並非為限制。在不脫離本發明的精神或範疇下,對於所揭露的實施例的數種改變可根據此處的揭露達成。因此,本發明的廣度及範疇不應受限於任何上述的實施例。本發明的範疇反而應根據下方的申請專利範圍及其等效者定義。
此處所使用的術語僅針對說明特定實施例之目的,且不意欲成為本發明之限制。除非內文中有另有明確地說明,此處所使用的單數形式「一(a)」、「一(an)」、及「此(the)」也意欲包括複數形式。再者,在詞語「包括(including)」、「包括(includes)」、「具有(having)」、「具有(has)」、「具有(with)」、或其變化係使用於實施方式及/或申請專利範圍之範圍中,此些詞語意欲以類似於「包括(comprising)」的方式具有包含性。
除非另有定義,此處所使用之所有詞語(包括技術及科學詞語)具有相同於此技術領域中具有通常知識者普遍理解的含意。再者,除非此處明確地定義,例如是該些在通用字典中定義的詞語應詮釋成具有與相關領域之內容中一致的意義,及將不以理想化或過度正
式含意的方式來詮釋。綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
300:程序
301~313:步驟
Claims (6)
- 一種用以存取資料之方法,包括:在一電腦系統的一開機自我測試(power-on self-test)期間,啟動一預登錄處理程序(pre-registered handler),該預登錄處理程序用以對該電腦系統的一基本輸入輸出系統(basic input output system,BIOS)中的一或多個暫存器執行存取、調整、或其組合;在該電腦系統之一作業系統的運行(runtime)期間,接收對該基本輸入輸出系統中的該一或多個暫存器之至少一暫存器執行存取、調整、或其組合之一請求;利用該預登錄處理程序處理該請求,以對應於該請求對該基本輸入輸出系統中之該一或多個暫存器之該至少一暫存器執行存取、調整、或其組合;以及基於由該預登錄處理程序所取得之來自該至少一暫存器的資料,提供對應於該請求之一回應,其中該一或多個暫存器與在該作業系統之運行期間不能讀取或寫入之難以存取資料(hard-to-access data)相關,其中在該作業系統不能讀取或寫入難以存取資料的運行期間,該請求係從一基板管理控制器(baseboard management controller,BMC)接收,並且該回應係提供至該基板管理控制器。
- 如請求項1所述之方法,其中發出該請求的一使用者係藉由該基板管理控制器的一智慧平台管理介面(intelligent platform management interface)接收該回應。
- 如請求項1所述之方法,其中該請求係來自一智慧平台管理介面命令。
- 如請求項1所述之方法,其中該請求係由該電腦系統的該作業系統接收。
- 如請求項4所述之方法,其中該基本輸入輸出系統藉由儲存表示該回應之資訊於該作業系統及該基本輸入輸出系統可存取之一特定位置中來提供該回應。
- 如請求項1所述之方法,更包括根據致使該至少一暫存器進行調整之該請求,重新啟動該電腦系統,該至少一暫存器進行該調整係需要重新啟動該電腦系統。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/724,752 | 2022-04-20 | ||
US17/724,752 US11829480B2 (en) | 2022-04-20 | 2022-04-20 | Remote access of system register configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202343262A TW202343262A (zh) | 2023-11-01 |
TWI824558B true TWI824558B (zh) | 2023-12-01 |
Family
ID=88415403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111121835A TWI824558B (zh) | 2022-04-20 | 2022-06-13 | 用以存取資料之方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11829480B2 (zh) |
CN (1) | CN116954485A (zh) |
TW (1) | TWI824558B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI446161B (zh) * | 2010-12-30 | 2014-07-21 | Ibm | 處理一多處理器資訊處理系統之一故障處理器的裝置及方法 |
CN107357400A (zh) * | 2016-05-10 | 2017-11-17 | 佛山市顺德区顺达电脑厂有限公司 | 自动开机到安装有指定操作系统类型的硬盘的方法 |
US20190073285A1 (en) * | 2017-09-01 | 2019-03-07 | Fujitsu Limited | Information processing device and information processing method |
TW202013135A (zh) * | 2018-09-25 | 2020-04-01 | 廣達電腦股份有限公司 | 用於管理計算裝置之電腦實施方法、計算裝置及非暫態電腦可讀取儲存媒體 |
CN114168196A (zh) * | 2021-11-19 | 2022-03-11 | 中科可控信息产业有限公司 | 寄存器控制方法、系统、装置、计算机设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082529B2 (en) * | 2003-04-25 | 2006-07-25 | Dell Products L.P. | Method and apparatus for capturing display characteristic information to achieve faster boot and resume of an information handling system |
US7234054B2 (en) * | 2004-02-09 | 2007-06-19 | Intel Corporation | Method and apparatus for enabling platform configuration |
US7242218B2 (en) * | 2004-12-02 | 2007-07-10 | Altera Corporation | Techniques for combining volatile and non-volatile programmable logic on an integrated circuit |
US8533845B2 (en) * | 2005-02-15 | 2013-09-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling operating system access to configuration settings |
US9779241B2 (en) * | 2013-09-25 | 2017-10-03 | Cisco Technology, Inc. | Synchronization of UEFI secure boot variables on a managed server |
US9529410B2 (en) * | 2014-07-14 | 2016-12-27 | American Megatrends, Inc. | Service processor (SP) initiated data transaction with BIOS utilizing power off commands |
US10956170B2 (en) * | 2019-03-22 | 2021-03-23 | Dell Products L.P. | BIOS setting modification system |
-
2022
- 2022-04-20 US US17/724,752 patent/US11829480B2/en active Active
- 2022-06-13 TW TW111121835A patent/TWI824558B/zh active
- 2022-06-29 CN CN202210759498.4A patent/CN116954485A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI446161B (zh) * | 2010-12-30 | 2014-07-21 | Ibm | 處理一多處理器資訊處理系統之一故障處理器的裝置及方法 |
CN107357400A (zh) * | 2016-05-10 | 2017-11-17 | 佛山市顺德区顺达电脑厂有限公司 | 自动开机到安装有指定操作系统类型的硬盘的方法 |
US20190073285A1 (en) * | 2017-09-01 | 2019-03-07 | Fujitsu Limited | Information processing device and information processing method |
TW202013135A (zh) * | 2018-09-25 | 2020-04-01 | 廣達電腦股份有限公司 | 用於管理計算裝置之電腦實施方法、計算裝置及非暫態電腦可讀取儲存媒體 |
CN114168196A (zh) * | 2021-11-19 | 2022-03-11 | 中科可控信息产业有限公司 | 寄存器控制方法、系统、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116954485A (zh) | 2023-10-27 |
TW202343262A (zh) | 2023-11-01 |
US11829480B2 (en) | 2023-11-28 |
US20230342470A1 (en) | 2023-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101572079B1 (ko) | 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템 | |
US10387261B2 (en) | System and method to capture stored data following system crash | |
US7047401B2 (en) | Handling interrupts during multiple access program instructions | |
JP6481900B2 (ja) | ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置 | |
US10585755B2 (en) | Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality | |
US9395919B1 (en) | Memory configuration operations for a computing device | |
JP5703378B2 (ja) | アラインメント制御 | |
US20080228971A1 (en) | Device modeling in a multi-core environment | |
US11816220B2 (en) | Phased boot process to dynamically initialize devices in a verified environment | |
CN114580344A (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
US11321077B1 (en) | Live updating of firmware behavior | |
US11789848B2 (en) | Context-sensitive debug requests for memory access | |
JP6868087B2 (ja) | 管理コントローラへの通信チャネルの方法及びシステム | |
TWI824558B (zh) | 用以存取資料之方法 | |
US20120096253A1 (en) | Method for automatically setting up system | |
US11138140B2 (en) | Configuring first subsystem with a master processor and a second subsystem with a slave processor | |
US11586536B1 (en) | Remote configuration of multi-mode DIMMs through a baseboard management controller | |
TW201435567A (zh) | 使用唯cpu重設的支援先進組態與電力介面(acpi)休眠狀態的方法及裝置 | |
US10754743B2 (en) | Apparatus and method using debug status storage element | |
US8543755B2 (en) | Mitigation of embedded controller starvation in real-time shared SPI flash architecture | |
US20010049794A1 (en) | Write protection software for programmable chip | |
US20190087376A1 (en) | Hot-plugged pcie device configuration system | |
US11360782B2 (en) | Processors to configure subsystems while other processors are held in reset | |
CN117667465B (zh) | 代码共享方法、装置、交换机、多主机系统、设备和介质 | |
US11169740B1 (en) | Simultaneous initiation of multiple commands for configuring multi-mode DIMMS using a BMC |