TWI832188B - 電腦系統以及在電腦系統中執行的方法 - Google Patents

電腦系統以及在電腦系統中執行的方法 Download PDF

Info

Publication number
TWI832188B
TWI832188B TW111111785A TW111111785A TWI832188B TW I832188 B TWI832188 B TW I832188B TW 111111785 A TW111111785 A TW 111111785A TW 111111785 A TW111111785 A TW 111111785A TW I832188 B TWI832188 B TW I832188B
Authority
TW
Taiwan
Prior art keywords
smi
mentioned
data
memory
processing unit
Prior art date
Application number
TW111111785A
Other languages
English (en)
Other versions
TW202326431A (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
Priority claimed from US17/646,449 external-priority patent/US11900150B2/en
Application filed by 廣達電腦股份有限公司 filed Critical 廣達電腦股份有限公司
Publication of TW202326431A publication Critical patent/TW202326431A/zh
Application granted granted Critical
Publication of TWI832188B publication Critical patent/TWI832188B/zh

Links

Abstract

一種用以在電腦系統中,儲存與系統管理中斷(SMI)有關的資料的系統及方法。在中央處理單元上接收系統管理中斷的通知。中央處理單元進入系統管理模式。基本輸入輸出系統(BIOS)的系統管理處理程序由中央處理單元的自我啟動處理器執行。系統管理中斷經由自我啟動處理器啟動。將系統管理中斷資料儲存於自我啟動處理器的暫存器中。SMI資料被轉換成可存取的格式。將轉換後的SMI資料儲存於記憶體中。

Description

電腦系統以及在電腦系統中執行的方法
本發明是關於電腦系統中的運行可靠度,特別是關於一種系統,上述系統允許對系統管理中斷(system management interrupt(SMI))資料進行可存取紀錄,以便做進一步分析。
伺服器被大量使用於高需求應用程式,例如基於網路的系統(network based system)或資料中心(data center)。雲端計算應用程式的出現使資料中心的需求增加。資料中心具有多個用以儲存資料及執行應用程式的伺服器,上述應用程式由遠端連線的電腦裝置使用者存取。典型的資料中心具有附帶電源的物理機架結構(physical rack structure)以及通訊連接。每個機架可以容納多個應用程式伺服器及儲存伺服器。每個伺服器一般包含硬體元件,例如處理器、記憶裝置、網路介面卡、電源供應器以及其他特殊化硬體。每個伺服器一般包含一基板管理控制器(baseboard management controller),上述基板管理控制器管理上述伺服器的操作,以及將操作資料(operational data)傳送到管理上述機架的伺服器的一中央管理站(central management station)。
典型的伺服器具有一處理單元,上述處理單元具有多個核心用以計算操作。上述核心執行一作業系統(operating system(OS))以和在上述伺服器中的其他硬體元件溝通。上述作業系統的其中一個功能是判斷並指出硬體元件故障的錯誤。
系統管理模式(system management mode (SMM))是一種為眾所皆知的特殊用途操作模式,用以處理全系統(system-wide)的功能,例如電腦系統中的電源管理或是系統硬體控制。SMM提供一種獨特且易於隔離的處理器環境,上述處理器環境的操作對於上述作業系統或是執行程序(executive)及軟體應用是透明的(transparent)。處理單元在一分開的(separate)位址空間執行上述SMM韌體碼,處理單元的其他操作模式無法存取上述分開的位址空間。SMM只能經由系統管理中斷(SMI)進入上述分開的位址空間。基本上, SMM由一自我啟動處理器(bootstrap processor(BSP))或一電腦系統的核心執行。
SMM是韌體/基本輸入輸出系統(basic input output system(BIOS))的一操作模式,用以在作業系統(OS)運行時執行系統管理操作。在執行時間內,中央處理單元(central processing unit(CPU))晶片組偵測配置的事件以及傳送一SMI的訊號,上述SMI的訊號會觸發上述CPU藉由跳到SMM進入點(entry point)進入SMM。當進入SMM時,所有的核心/執行緒(thread)也都進入SMM,直到上述自我啟動處理器(BSP)結束各自的SMM服務並離開SMM。
在許多處理器架構中,中斷程序被用以減少等待來自記憶體、介面、處理器,或是周邊裝置的請求的時間。一般來說,一系統管理中斷(SMI)經由軟體或硬體觸發。一中斷處理程序(interrupt handler)由韌體作為硬體抽象層(hardware abstraction layer(HAL))的一部份執行,上述硬體抽象層也包含BIOS。上述中斷處理程序觸發上述SMI。當上述SMI發生時,作業系統的執行會暫停。和上述SMI相關的資料通常會儲存在一暫存器中,例如在CPU中執行SMM的一模型特定暫存器(model specific register(MSR))。當SMM執行時,系統服務及應用程式停止且無法提供服務,導致電腦系統的停機時間。這同時也代表作業系統無法得知晶片組何時傳送上述SMI的訊號,且無法擷取上述SMI的資料,例如和其他中斷的類型相關的資料。
如果使用者想要在作業系統中追蹤SMI的來源以及SMI的中斷類型,使用者必須存取MSR。然而,MSR被設計為一個特殊的處理器,並且通常是無法存取的。就緒存取(ready access)儲存在MSR中的資料,需要使用由處理器晶片供應商提供的一開發工具,以便傾卸(dump)儲存在MSR中的來源及中斷類型。
因為要追蹤由韌體觸發的SMI的來源十分困難,因此使用者目前無法輕易地存取和SMI相關的資料。由於導致某些SMI的原因無法得知,SMI資料可能有助於提高電腦的效能。了解SMI的原因可以避免過多的停機時間,因為過多的中斷會造成長時間執行SMM,使處理器無法執行任何其他操作,因此減低系統效能。
因此,需要一種允許隨時可存取與系統管理中斷相關的資料的系統。也需要一種不需要存取一特殊的開發工具就可以從一處理器暫存器(register)讀取SMI資料的系統。另外,也需要一種將SMI資料儲存於由BMC管理的一事件日誌(event log)中,以分析SMI的根本原因的系統。
實施例一詞及相似的用語旨在廣義上指這個揭露及以下請求項的所有標的。包含這些用語的聲明應理解為不被限制於這裡描述的標的,或是不被用以限制以下請求項的意義或範圍。本揭露在此涵蓋的實施例由以下請求項定義,而不是本發明內容。本發明內容是一個揭露內容各面向的高層次概述,及介紹一些概念,上述概念會在實施方式中有進一步的描述。本發明內容不用以識別請求項標的的關鍵或必要特徵。本發明內容也不應單獨使用來決定請求項標的的範圍。標的內容應該以參考本揭露整個詳細說明的適當部份、任何或全部圖示,及每個請求項的方式理解。
本發明實施例中一個揭露的範例是一種電腦系統,包含一基本輸入輸出系統(BIOS);一記憶體;以及一中央處理單元,上述中央處理單元耦接上述記憶體及上述BIOS。上述中央處理單元具有一自我啟動處理器,上述自我啟動處理器執行儲存在上述BIOS中的一系統管理中斷處理程序,以在一系統管理模式中觸發一系統管理中斷(SMI)。上述自我啟動處理器執行上述系統管理中斷處理程序以將與上述系統管理中斷相關的資料儲存於上述記憶體中。
範例系統的一種更進一步的實施方式為一實施例,其中上述電腦系統包含一基板管理控制器(BMC) ,上述基板管理控制器耦接上述記憶體。另一種實施方式為,上述記憶體為一快閃記憶體,上述快閃記憶體耦接上述BMC,其中,上述BMC將上述資料儲存至到一系統錯誤日誌(system error log(SEL))上。另一種實施方式為,儲存在上述系統錯誤日誌上的上述資料可以經由一智慧平台管理介面(Intelligent Platform Management Interface(IPMI))指令存取。另一種實施方式為,上述記憶體為一共用揮發性記憶體(shared volatile memory)。另一種實施方式為,在上述記憶體中的上述資料可以經由一作業系統驅動程式(driver)存取。另一種實施方式為,上述電腦系統為一伺服器。另一種實施方式為,上述系統包含一揮發性記憶體及上述記憶體為一非揮發性(non-volatile)記憶體。上述自我啟動處理器判定上述SMI的一類型,以及基於上述SMI的上述類型請求一重新啟動(reboot),在上述中央處理單元的一重新啟動後,將上述揮發性記憶體中的資料複製到上述非揮發性記憶體中。另一種實施方式為,上述中央處理單元包含複數個處理器,上述複數個處理器中包含上述自我啟動處理器。另一種實施方式為,上述系統管理中斷由一硬體元件向上述中央處理單元的一南橋晶片(south bridge chip)的一輸入埠傳送訊號所啟動。另一種實施方式為,上述系統管理中斷從在上述中央處理單元上的可靠性-可用性-可維護性(reliability(RAS))韌體啟動。另一種實施方式為,上述系統管理中斷由介接一周邊裝置的一作業系統啟動。另一種實施方式為,上述資料在儲存至上述記憶體上之前,被轉換成一JavaScript物件表示法(JavaScript Object Notation(JSON))格式。
另一個揭露的範例為一方法,上述方法用以在一電腦系統中儲存與一系統管理中斷(SMI) 有關的資料。在一中央處理單元上接收上述系統管理中斷的通知。上述中央處理單元進入一系統管理模式。一基本輸入輸出系統(BIOS)的一系統管理處理程序由上述中央處理單元的一自我啟動處理器執行。上述系統管理中斷經由上述自我啟動處理器啟動。將一系統管理中斷資料儲存於上述自我啟動處理器的一暫存器中。將上述SMI資料轉換成一可存取的格式。將已轉換的上述SMI資料儲存於一記憶體中。
上述範例方法的另一種實施方式為,上述記憶體為耦接一基板管理控制器(BMC)的一快閃記憶體。上述BMC將上述資料儲存至一系統錯誤日誌上。另一種實施方式為,上述方法更包含,允許經由一作業系統驅動程式存取儲存在上述記憶體上的上述SMI資料。另一種實施方式為,上述方法進一步包含,判定上述系統管理中斷的一類型是否需要一重新啟動。上述記憶體為一非揮發性記憶體。上述中央處理單元被重新啟動。在上述重新啟動後,將上述記憶體中的上述資料複製至一揮發性共用記憶體中。另一種實施方式為,上述系統管理中斷由以下其中之一啟動:一硬體元件向一處理器晶片組的一南橋晶片的一輸入埠傳送訊號;可靠性-可用性-可維護性 (RAS)韌體;或是經由介接一周邊裝置的一作業系統。另一種實施方式為,上述資料被轉換成一JavaScript物件表示法(JSON)格式。
另一揭露的範例為一種電腦系統,包含一基本輸入輸出系統(BIOS);一揮發性共用記憶體;一非揮發性記憶體;以及一中央處理單元,上述中央處理單元耦接上述記憶體及上述BIOS。上述中央處理單元具有一自我啟動處理器,上述自我啟動處理器執行儲存於上述BIOS中的一系統管理中斷處理程序,以在一系統管理模式中觸發一系統管理中斷。基於上述SMI的一類型是否需要一重新啟動,上述自我啟動處理器執行上述系統管理中斷處理程序,將與上述系統管理中斷相關的資料儲存至上述揮發性記憶體或上述非揮發性記憶體中。
本發明能以多種不同的型式實施。代表性的實施例在圖式中展示,並將在此詳細的描述。本揭露是本揭露的原則的範例或示意,並不應該用以將本揭露的廣泛面向限制於示意說明的實施例。在此範圍下,揭露的元素及限制,舉例來說,在摘要、發明內容以及實施方式中提到,但是在請求項中沒有明確說明的部分,不應該由實施方式、推測或其他方式單獨或集體地被納入請求項中。為了便於本描述詳細說明,在適當的地方除非特別聲明,單數包含複數,且反之亦然;「包含」這個詞意思是「包含但不限於」。此外,用來表示近似的詞,例如「大約」、「幾乎」、「大致上」、「大概」及相似的詞在此可以被用以代表「在」、「附近」、「幾乎在」、「在3-5%內的」、「在可接受的製造容忍範圍內」或例如其中任何邏輯上的組合。
本揭露係關於一種允許蒐集與系統管理中斷相關(SMI)的資料,並將上述資料以一可存取的格式儲存的例程(routine)。範例的例程由中斷處理程序韌體執行,並將SMI資料轉換成可存取的格式。SMI資料儲存在可由一控制器存取的共用記憶體或是一非揮發性記憶體中。舉例來說,上述控制器可以為一基板管理控制器(BMC)。此範例的例程使一使用者能夠容易地追蹤系統管理中斷 (SMI)的來源,上述系統管理中斷由韌體觸發。就緒存取SMI資料可以防止電腦系統因為過多的SMI導致性能下降。上述例程也免除特殊開發工具的需要,上述特殊開發工具用以確認一處理器暫存器來取得SMI資料。
第1圖為一電腦系統100的方塊圖,電腦系統100包含SMI資料的蒐集功能和SMI資料的可存取儲存功能。在本範例中,電腦系統100為一伺服器,但是此處所揭露的原理可以被納入任何電腦系統中,只要上述電腦系統具有一作業系統使用一系統管理模式(SMM)以處理SMI。電腦系統100包含一中央處理單元(CPU)110、一平台BIOS 112、一基板管理控制器(BMC)114,以及一作業系統(OS)116。CPU 110在這個範例中為一晶片組,上述晶片組可以包含一組處理核心,上述處理核心包含一自我啟動處理器(BSP)120、一北橋晶片(north bridge chip)122,以及一南橋晶片124。
在本範例中,北橋晶片122處理記憶體操作。南橋晶片124為電腦系統100執行基本輸入/輸出功能。北橋晶片122及南橋晶片124另一個功能為處理不同的可靠性-可用性-可維護性特性(RAS features)。上述RAS特性被設計來增加電腦系統100中的可靠性、可用性以及增進周邊元件的服務。在本範例中,上述RAS特性偵測在周邊元件中的裝置錯誤,舉例來說,上述周邊元件可以為附加卡(add-on cards)、雙行記憶體模組(dual in line memory modules(DIMM)),以及硬式磁碟機(hard disk drive)。
電腦系統100包含一共用記憶體130,共用記憶體130可以為靜態隨機存取記憶體(SRAM)。電腦系統100也包含一非揮發性記憶體132,非揮發性記憶體132可以為一快閃記憶體或一類似的裝置。一BMC專用快閃記憶體134儲存BMC韌體,以及一系統錯誤日誌(SEL)136。在本範例中,非揮發性記憶體132和BMC專用快閃記憶體134可以為同一個快閃記憶體,也可以是分開的快閃記憶體。BMC 114可以存取BMC專用快閃記憶體134以增加SEL 136中的條目(entry)。一外部裝置(例如在一資料中心內的一管理伺服器)可以經由一網路介面和BMC 114通訊以讀取SEL 136中的條目。BMC 114也可以存取已寫入共用記憶體130中的資料。在本範例中,共用記憶體130為在一BMC晶片上的內部RAM,舉例來說,BMC晶片可為由信驊科技(ASPEED)所提供的晶片(例如AST2500),內部RAM對應到(map to)系統記憶體。
在本範例中,電腦系統100包含多個存取南橋晶片124所管理之輸入/輸出功能的硬體周邊裝置。在本範例中,上述硬體周邊裝置包含周邊元件介面高速版(peripheral component interface express (PCIe))裝置、雙行記憶體模組 (DIMM)、硬式磁碟機(hard disk drive(HDD))或固態硬碟(solid state drives (SDD))、通用序列匯流排(universal serial bus (USB))裝置、串列週邊介面(serial peripheral interface (SPI))裝置,以及系統管理匯流排(system management bus (SMBUS))裝置。上述PCIe裝置可以包含擴充卡(expansion card),例如網路介面卡(Network Interface Card(NIC))、容錯式磁碟陣列(redundant array of inexpensive disk(RAID))卡、場域可程式邏輯陣列(field programmable gate array (FPGA))卡、固態硬碟 (SSD)卡、雙行記憶體裝置,以及圖形處理單元(graphic processing unit(GPU))卡。應該了解的是,在此描述的裝置有許多相似的裝置,並可以包含裝置的不同類型。
南橋晶片124包含可靠性-可用性-可維護性矽140 (RAS silicon),可靠性-可用性-可維護性矽140用以管理錯誤報告及其他RAS功能。南橋晶片124包含一組輸入/輸出埠142。南橋晶片124也包含一SMI#埠144,SMI#埠144可以耦接於BMC 114。南橋晶片124也包含PCIe埠146及一框架開啟埠(chassis open port)148。在本範例中,一PCIe裝置150可以耦接PCIe埠146以請求中斷。應該了解的是,PCIe裝置150代表多個PCIe裝置。框架開啟埠148可以接收感應器中斷。舉例來說,上述感應器可以為一框架開啟感應器152,若是框架開啟感應器152偵測到電腦系統100的框架開啟,則請求中斷。來自SMI#埠144、PCIe埠146及框架開啟埠148的上述中斷為硬體中斷,上述硬體中斷將在以下說明。舉例來說,其他輸入/輸出裝置154為可以存取輸入/輸出埠142的鍵盤、滑鼠,或影像裝置。一特殊輸入/輸出埠(0B2h)可以由作業系統116存取以產生軟體中斷。
平台BIOS 112包含一系統管理中斷(SMI)處理程序韌體160(以下也稱為SMI處理程序160)。在本範例中,SMI處理程序160處理系統管理中斷。在本範例中,當其他處理器核心被暫停進入上述系統管理模式(SMM)時,SMI處理程序160由自我啟動處理器120執行。自我啟動處理器120包含一系列的模型特定暫存器(MSR),上述一系列的模型特定暫存器包含用以儲存SMI資料的MSR。
如上所述,系統管理模式(SMM)為當作業系統(OS)116執行時,用以由平台BIOS 112執行系統管理操作的操作模式。在電腦系統100的執行時間內,CPU 110的晶片組偵測某些配置的事件。上述配置的事件可以包含來自處理器核心、記憶體裝置、周邊裝置,以及其他可以觸發中斷的元件的通知。在本範例中,某些配置的事件傳送SMI訊號。SMI觸發自我啟動處理器120藉由轉跳至SMM進入點(entry point)而進入SMM。當進入SMM時,所有核心/執行緒也進入SMM,直到自我啟動處理器(BSP)120結束各自的SMM服務並離開SMM。
在本範例中,電腦系統100有三種方法能夠進入SMM。第一種,在主機板上的硬體或處理器晶片組可以經由傳送一訊號到南橋晶片124上之一設計的接腳(例如SMI#埠144),傳送一SMI通知的訊號。上述訊號可以為一獨立的事件。第二種,一軟體SMI可以由系統軟體(例如作業系統116),經由一輸入/輸出存取一個對於主機板邏輯(motherboard logic)特殊的位置來觸發。舉例來說,輸入/輸出埠142的上述輸入埠0B2h可以作為上述輸入/輸出所存取的特殊的位置。第三種,一輸入/輸出寫入可以從一外部裝置接收的一位置,舉例來說,上述外部裝置可以為PCIe裝置。韌體(例如平台BIOS 112)可以接收上述寫入並請求上述處理器晶片組觸發SMI 。
由硬體造成的SMI的例子包含熱感應器(thermal-sensor)事件、啟動節流(throttle)、系統管理RAM存取、機架開啟、系統電源按鈕被按下、系統管理匯流排(SMUBUS)事件、電源管理事件(Power Management Events (PME))、周邊元件介面高速版(PCIe)熱插(Hot-Plug)事件、實時時鐘(Real Time Clock (RTC))警報啟動,以及多個系統狀態相關的活動。由軟體啟動的SMI的例子可以為RAS事件。舉例來說,RAS事件可以由一RAS工具使用,以基於一錯誤注入(error injection(EINJ))先進組態與電力介面(Advanced Configuration and Power Interface (ACPI))表提供錯誤注入(error injection)。另一個由軟體啟動的SMI的例子可以為一應用程式請求,例如可以為一BIOS應用程式在作業系統中觸發一軟體SMI。
第2圖為處理一SMI的範例流程的一流程圖,上述範例流程由第1圖中的SMI處理程序160執行,並包含蒐集及儲存SMI資料。一初始的SMI觸發CPU 110的自我啟動處理器120進入SMM(210)。如上所述, 上述SMI可以由一硬體裝置、經由軟體(例如平台BIOS 112的韌體)、或是從一外部裝置經由作業系統(OS)116觸發。當作業系統116在SMM中,自我啟動處理器120將掃描MSR狀態,以確定上述SMI的來源(220)。之後,CPU 110執行對應的回應(callback)功能。舉例來說,若是電源按鈕被按下,在SMM中的功能碼(function code)將寫入一輸入/輸出埠(例如0xCF9)以關閉系統。另一個範例可以為USB操作在傳統模式(legacy mode),此時,在SMM中的上述功能碼初始化USB暫存器。為了蒐集和上述SMI相關的資料,範例的例程允許一紀錄日誌(record log)取得SMI資料(230)。上述處理器執行適當的功能(function)以處理(address)上述SMI(240)。
在記錄上述SMI資料(220)的過程中,系統韌體將確認上述SMI資料是否需要被蒐集。在本範例中,和每一SMI有關的資料會盡可能充分地被蒐集,除非因為這樣的蒐集使得BIOS花費太多時間在SMM中,影響到電腦系統100的效能。BIOS設定選項(BIOS setup option)可以包含用以停用蒐集功能的一選項,以防止在SMM中花費過多時間。在本範例中,SMI處理程序160蒐集上述SMI資料並將上述SMI資料轉換成一可存取的資料格式。在本範例中,原始SMI資料被轉換成一JavaScript物件表示法(JSON)格式以儲存至一可存取的記憶體中。也可以使用其他可存取的資料格式,上述可存取的資料格式最好是一公開標準檔案格式並可以被用來做資料交換。
SMI處理程序160之後會基於SMI的類型,把已轉換的資料儲存至揮發性(BMC共用記憶體,例如共用記憶體 130)或非揮發性記憶體空間中(NVRAM、非揮發性記憶體132)。在一般情況下,當SMI的類型不需要系統重新啟動,SMI處理程序160會將上述SMI資料儲存至共用記憶體130,使得使用者可以經由一作業系統(OS)驅動程式擷取(retrieve)資料。因為BMC 114也會存取共用記憶體130,BMC 114可以擷取資料並將資料儲存至在BMC專用快閃記憶體134中的SEL 136中。
在本範例中, 當SMI的類型需要系統重新啟動時,已轉換的SMI資料會儲存至非揮發性記憶體中,以在系統重新啟動時保存上述SMI資料。舉例來說,若是SMI由一無法更正的錯誤觸發,上述無法更正的錯誤會導致系統重新啟動或空轉時,系統韌體將資料儲存至非揮發性記憶體132以防止資料丟失。
第3A圖展示了一基於硬體的SMI的一資料紀錄310,資料紀錄310可以儲存在一系統錯誤日誌中,例如第1圖中的系統錯誤日誌136中。資料紀錄310包含中斷的來源、中斷是否為發生在啟動前的最後一次啟動中斷、中斷的時間,以及中斷的類型。在本範例中,中斷從一外部硬體裝置(XHCI)發生。和已辨識的外部硬體裝置有關的一暫存器可以被檢查,以判定SMI被觸發的原因。另一個範例為USB裝置寫入對應錯誤的一暫存器位元。
第3B圖展示了一基於軟體的SMI的一資料紀錄320,資料紀錄320可以儲存在一系統錯誤日誌中,例如第1圖中的系統錯誤日誌136中。資料紀錄320包含中斷的來源、中斷是否為發生在啟動前的最後一次啟動中斷、中斷的時間,以及中斷的類型。在本範例中,上述中斷是由於嘗試讀取快閃記憶體失敗所導致。
當資料紀錄(例如資料紀錄310或資料紀錄320)被儲存到SEL 136時,使用者可以使用一智慧平台管理介面 (IPMI)指令直接經由BMC 114存取上述資料紀錄。舉例來說,經由IPMI指令取得的紀錄,其中一部份可以為: 1 | 07/01/2019 | 09:05:14 | 軟體管理中斷|硬體|PCI裝置熱插|已宣告| 2 | 07/01/2019 | 09:05:14 |軟體管理中斷 | 軟體 | 看門狗計時器 | 在本範例中,第一紀錄條目指出SMI從一PCI裝置發生,而第二紀錄條目指出中斷從一看門狗計時器發生。
第4圖展示了JSON資料格式的一表格400,上述JSON資料格式源自於蒐集的SMI資料,上述SMI資料和一特定的中斷有關。表格400包含一特徵(attribute)欄410、一資料類型欄412、一讀取狀態欄414,以及一描述欄416。特徵欄410列出源自於上述SMI資料的適用(applicable)特徵。資料類型欄412展示了上述特徵的資料類型(例如字串或布林)。讀取狀態欄414指出上述資料是否只能讀取。描述欄416包含上述特徵的描述。
特徵列420包含來源的一描述,上述描述判定上述中斷來自一硬體來源或來自一軟體來源。最後一次啟動中斷特徵列422指出上述中斷是否由最後一次啟動觸發。時間戳記(timestamp)特徵列424指出中斷的時間。類型特徵列426指出上述中斷的類型,並用以判定觸發SMI的元件或處理程序。
透過上述SMI資料能夠識別SMI的來源。辨識SMI的來源使得BIOS能夠不暫停整個系統,將SMI處理程序改變為另一個中斷處理程序,以增加電腦系統100的操作效率。上述SMI資料可以指示一故障元件。因此,操作人員可以被提醒以維修或替換上述故障元件。上述SMI資料的時間戳記特徵可以幫助追蹤什麼應用程式被執行並影響系統。上述SMI資料的最後一次啟動中斷特徵可以幫助追蹤什麼類型的SMI會影響系統造成重新啟動。
第5圖展示了範例的蒐集與儲存程序的一流程圖,上述範例的蒐集與儲存程序由SMI處理程序160執行。例程(routine)首先掃描自我啟動處理器120的MSR(510)。上述例程讀取儲存在上述MSR中的SMI資料,並判定上述SMI資料是否指示一SMI的發生,以判定是否蒐集資料(512)。若是上述例程判定不需要蒐集資料(512),上述例程回到原本的處理程序流程(514)。
若是上述例程判定需要蒐集資料(512),上述例程從上述MSR蒐集上述SMI資料(516)。在本範例中,蒐集的資料被轉換成JSON格式(518)。上述例程從所蒐集的資料審查SMI的類型。上述例程判定上述SMI是否需要重新啟動(520)。若是上述SMI不需要重新啟動,上述例程將紀錄儲存至共用揮發性記憶體中,舉例來說,上述共用揮發性記憶體可以為第1圖中的共用記憶體130(522)。接下來,上述例程循環到原本的處理程序流程(514)。若是上述SMI需要重新啟動,上述例程將紀錄儲存至非揮發性記憶體中,舉例來說,上述非揮發性記憶體可以為第1圖中的非揮發性記憶體132(524)。接下來,上述例程循環到原本的處理程序流程(514)。
第6圖展示了在重新啟動後,處理儲存在NVRAM中的SMI資料的程序,舉例來說,上述NVRAM可以為非揮發性記憶體132。在第6圖中的例程確保在BIOS POST時間內,BIOS會確認NVRAM中是否有儲存任何SMI資料的紀錄,並在之後將上述SMI資料的紀錄轉移至共用記憶體130中,使得上述SMI資料能夠存取。因此,若是SMI導致重新啟動,上述SMI資料將可以經由共用記憶體130存取。
上述例程從一原本的啟動流程開始,舉例來說,上述原本的啟動流程可以為BIOS POST的執行(610)。接下來,上述例程判定在非揮發性記憶體中是否有儲存一SMI資料紀錄(612)。若是在非揮發性記憶體中有儲存SMI資料,上述例程將資料寫入共用記憶體中(614)。接下來,上述例程循環到原本的啟動流程(616)。若是在非揮發性記憶體中沒有儲存SMI資料,上述例程繼續原本的啟動流程(616)。藉由這個方法,在重新啟動後,任何先前儲存在非揮發性記憶體中的SMI資料,現在可以經由共用非揮發性記憶體存取。
在第5圖與第6圖中的流程圖為機器可讀指令(machine readable instruction)的代表性範例,上述機器可讀指令用以在第1圖中的電腦系統100中執行SMI資料的紀錄及儲存。在本範例中,上述機器可讀指令包含用以由(a)一處理器;(b)一控制器;及/或(c)一或多個合適的處理裝置執行的一演算法。上述演算法可以在軟體中實施,上述軟體儲存在有形的媒介中,舉例來說,上述有形的媒介可以為快閃記憶體、CD-ROM、軟式磁碟(floppy disk)、硬碟(hard drive)、數位光碟(digital video (versatile) disk(DVD)),或是其他記憶裝置。然而,本技術領域中具有通常技術的人應該可以理解,整個演算法及/或其中的部份可以選擇性地由處理器以外的裝置執行,及/或在韌體或專用硬體中使用習知的方法執行(例如可以由一應用特定積體電路(application specific integrated circuit(ASIC))、一可程式邏輯裝置(programmable logic device(PLD))、一場域可程式邏輯裝置(field programmable logic device (FPLD))、一場域可程式閘陣列(field programmable gate array (FPGA))、離散邏輯(discrete logic)等執行)。舉例來說,介面的任何或所有元件可以由軟體、硬體,及/或韌體執行。此外,由流程圖表示的一些或全部的機器可讀指令可以用手動執行。進一步而言,雖然範例的演算法是參照第5圖與第6圖示意的流程圖描述,本技術領域中具有通常技術的人應該可以了解,執行範例的機器可讀指令的許多其他方法可以選擇性地被使用。舉例來說,方塊執行的順序可以改變,及/或一些描述的方塊可以被改變、刪除或合併。
在本應用中,「元件」、「模組」、「系統」或是相似的詞通常指一電腦相關實體,可以為硬體(例如一電路)、硬體及軟體的組合、軟體,或是與具有一或多個特殊功能的一操作機器相關的一實體其中之一。舉例來說,一元件可以為在一處理器(例如數位訊號處理器(digital signal processor))上執行的一程序、一處理器、一物件、一可執行的一執行緒、一程式,及/或一電腦,但不限定於此。舉例來說,在一控制器上執行的一應用程式以及控制器都可以為一元件。一或多個元件可以在一程序及/或執行的執行緒中,且一元件可以位於一電腦及/或分佈在二或更多電腦間。進一步而言,一「裝置」可以為特別設計的硬體、通用的硬體(藉由在上述通用的硬體上執行的軟體特殊化,並能夠執行特殊功能)、儲存在一電腦可讀媒體上的軟體、或是其中的組合的形式。
雖然本發明的多個實施例已在之前描述過,應該理解描述過的實施例只是以例子的方式呈現,並沒有被限制。雖然本發明已經參照一或多個實施方式示意說明及描述,本技術領域的其他技術人員在閱讀及理解本詳細說明及附屬的圖示時,將想到或知道相等的改動及修改。此外,雖然本發明的一特定特徵對於一些實施方式中的一個可能已經揭露,那樣的特徵可以和一或多個其他實施方式的其他特徵結合,並且在任何給定的或特定的應用中可能是有需要或是有利的。因此,本發明的廣泛性及範圍不應該被限制於任何以上描述過的實施例。反而,本發明的範圍應該根據接下來的請求項及請求項的均等範圍定義。
在此使用的詞彙只是為了描述特定的實施例,不應該用以限制本發明。除非內文特別指出,在此使用的單數「一」及「上述」旨在包含複數。進一步而言,在某種程度上,被使用在實施方式及/或請求項中的「包含」、「具有」或其中的變化,旨在以類似於「包括」的方式納入。
除非另外定義,在此使用的所有術語(包含技術及科學術語)與本技術領域中具有通常技術的人所理解的一樣。進一步而言,術語應該被解釋為具有和術語在先關技術背景下的意義一致的意義,且除非在此明確定義,不被以理想化或過度型式(formal)的方式解釋。舉例來說,上述術語可以為定義於一般使用的字典中的那些術語。
100:電腦系統 110:中央處理單元(CPU) 112:平台BIOS 114:基板管理控制器(BMC) 116:作業系統(OS) 120:自我啟動處理器(BSP) 122:北橋晶片 124:南橋晶片 130:共用記憶體 132:非揮發性記憶體 134:BMC專用快閃記憶體 136:系統錯誤日誌(SEL) 140:可靠性-可用性-可維護性矽 142:輸入/輸出埠 144:SMI#埠 146:PCIe埠 148:框架開啟埠 150:PCIe裝置 152:框架開啟感應器 154:輸入/輸出裝置 160:系統管理中斷處理程序韌體(SMI處理程序) 210、220、230、240、510、512、514、516、518、520、522、524、610、612、614、616:操作 310、320:資料紀錄 400:表格 410:特徵欄 412:資料類型欄 414:讀取狀態欄 416:描述欄 420:特徵列 422:最後一次啟動中斷特徵列 424:時間戳記(timestamp)特徵列 426:類型特徵列
本揭露從接下來範例實施例的描述並參考附帶的圖示會更好理解,其中: 第1圖為一計算系統的方塊圖,上述計算系統包含允許在一可存取位置紀錄SMI資料的韌體; 第2圖為一程序圖,展示了在SMI期間紀錄功能的實施方式; 第3A圖為一範例的日誌條目(entry),上述日誌條目有關於硬體產生的中斷; 第3B圖為一範例的日誌條目,上述日誌條目有關於軟體產生的中斷; 第4圖為一資料的表格,上述資料以JSON格式從範例的例程(routine)蒐集而來; 第5圖為一範例的例程的流程圖,上述範例的例程用以中斷及蒐集SMI資料; 第6圖為一範例的例程的流程圖,上述範例的例程用以在一重新啟動後決定SMI資料的儲存位置。
本揭露很容易有多種修改及替代型式。一些代表性的實施例已經在圖式中以範例的方式展示過,並在此將詳細描述。然而,應理解本發明不該限制於任何揭露過的型式。相反的,本揭露涵蓋了所有落入如請求項中定義的本發明精神及範圍中的修改、相等以及替代。
510、512、514、516、518、520、522、524:操作

Claims (9)

  1. 一種電腦系統,包含:一基本輸入輸出系統(BIOS);一記憶體;一基板管理控制器(BMC);以及一中央處理單元,上述中央處理單元耦接上述記憶體及上述BIOS,上述中央處理單元包含一自我啟動處理器,上述自我啟動處理器包含一模型特定暫存器(MSR),並且上述自我啟動處理器執行儲存於上述BIOS中的一系統管理中斷處理程序,以在一系統管理模式中觸發一系統管理中斷(SMI);其中,上述自我啟動處理器執行上述系統管理中斷處理程序以將上述MSR中與上述SMI相關的資料轉換為一公開標準檔案格式後儲存於上述記憶體中;其中上述記憶體為耦接上述BMC的一快閃記憶體,其中上述BMC將上述資料儲存至一系統錯誤日誌上,儲存在上述系統錯誤日誌上的上述資料可經由一智慧平台管理介面(IPMI)指令存取。
  2. 如請求項1之電腦系統,其中上述公開標準檔案格式為JavaScript物件表示法(JavaScript Object Notation(JSON))格式。
  3. 如請求項1之電腦系統,其中上述記憶體中的上述資料可經由一作業系統驅動程式存取。
  4. 如請求項1之電腦系統,更包含一揮發性記憶體, 其中上述記憶體為一非揮發性記憶體,其中上述自我啟動處理器判定上述SMI的一類型,並基於上述SMI的上述類型請求一重新啟動,在上述中央處理單元的上述重新啟動後,將上述揮發性記憶體中的上述資料複製到上述非揮發性記憶體中。
  5. 如請求項1之電腦系統,其中上述SMI係藉由以下其中之一者所啟動:一硬體元件向上述中央處理單元的一南橋晶片的一輸入埠傳送訊號;在上述中央處理單元上的可靠性-可用性-可維護性(RAS)韌體;介接一周邊裝置的一作業系統。
  6. 一種在電腦系統中儲存與一系統處理中斷(SMI)有關的資料的方法,包含:在一中央處理單元上接收上述SMI的通知;進入一系統管理模式;經由上述中央處理單元的一自我啟動處理器執行一基本輸入輸出系統(BIOS)的一系統管理處理程序;經由上述自我啟動處理器啟動上述SMI;將一SMI資料儲存至上述自我啟動處理器的一模型特定暫存器(MSR)中;將上述SMI資料轉換成一公開標準檔案格式;以及將已轉換的上述SMI資料儲存於一記憶體中;其中上述電腦系統更包含一基板管理控制器(BMC),上述記憶體為耦接一基板管理控制器(BMC)的一快閃記憶體,其中上述 BMC將已轉換的上述SMI資料儲存至一系統錯誤日誌上,儲存在上述系統錯誤日誌上的已轉換的上述SMI資料可經由一智慧平台管理介面(IPMI)指令存取。
  7. 如請求項6之方法,更包含:判定上述SMI的一類型是否需要一重新啟動;重新啟動上述中央處理單元,其中上述記憶體為一非揮發性記憶體;以及在上述重新啟動後,將在上述記憶體中的已轉換的上述SMI資料複製至一揮發性共用記憶體中。
  8. 如請求項6之方法,其中上述SMI係藉由以下其中之一者所啟動:一硬體元件向上述中央處理單元的一南橋晶片的一輸入埠傳送訊號;一可靠性-可用性-可維護性(RAS)韌體;或是介接一周邊裝置的一作業系統。
  9. 一種電腦系統,包含:一基本輸入輸出系統(BIOS);一揮發性共用記憶體;一非揮發性記憶體;一基板管理控制器(BMC);以及一中央處理單元,上述中央處理單元耦接上述揮發性共用記憶 體、上述非揮發性記憶體以及上述BIOS,上述中央處理單元包含一自我啟動處理器,上述自我啟動處理器包含一模型特定暫存器(MSR),並且上述自我啟動處理器執行儲存於上述BIOS中的一系統管理中斷(SMI)處理程序,以在一系統管理模式中觸發一系統管理中斷;其中,基於上述SMI的一類型是否需要一重新啟動,上述自我啟動處理器執行上述SMI處理程序以將上述MSR中與上述SMI相關的資料轉換成一公開標準檔案格式後儲存至上述揮發性共用記憶體或是上述非揮發性記憶體中;其中上述非揮發性記憶體為耦接上述BMC的一快閃記憶體,其中上述BMC將上述資料儲存至一系統錯誤日誌上,儲存在上述系統錯誤日誌上的上述資料可經由一智慧平台管理介面(IPMI)指令存取。
TW111111785A 2021-12-29 2022-03-29 電腦系統以及在電腦系統中執行的方法 TWI832188B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/646,449 2021-12-29
US17/646,449 US11900150B2 (en) 2021-12-29 2021-12-29 Methods and systems for collection of system management interrupt data

Publications (2)

Publication Number Publication Date
TW202326431A TW202326431A (zh) 2023-07-01
TWI832188B true TWI832188B (zh) 2024-02-11

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190004818A1 (en) 2017-06-29 2019-01-03 American Megatrends Inc. Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190004818A1 (en) 2017-06-29 2019-01-03 American Megatrends Inc. Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof

Similar Documents

Publication Publication Date Title
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
US10387261B2 (en) System and method to capture stored data following system crash
US11526411B2 (en) System and method for improving detection and capture of a host system catastrophic failure
JP7351933B2 (ja) エラーリカバリ方法及び装置
US11461085B2 (en) Firmware upgrade method in multiple node storage system
TW202234239A (zh) 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片
US10911259B1 (en) Server with master-slave architecture and method for reading and writing information thereof
US20190026202A1 (en) System and Method for BIOS to Ensure UCNA Errors are Available for Correlation
TWI832188B (zh) 電腦系統以及在電腦系統中執行的方法
TWI777628B (zh) 電腦系統及其專用崩潰轉存硬體裝置與記錄錯誤資料之方法
US10684896B2 (en) Method for processing asynchronous event by checking device and checking device
JP4299634B2 (ja) 情報処理装置及び情報処理装置の時計異常検出プログラム
TWI772024B (zh) 減少停機時間的方法及系統
US11900150B2 (en) Methods and systems for collection of system management interrupt data
US20230205886A1 (en) Iterative boot queue
US11593209B2 (en) Targeted repair of hardware components in a computing device
US11487550B1 (en) Event communication management
TW202223653A (zh) 決定故障日誌記錄之結構的裝置、系統及方法
JP2003022222A (ja) 情報処理装置及びその保守方法
WO2019169615A1 (zh) 访问指令sram的方法和电子设备
JPH1165898A (ja) 電子計算機の保守方式
TWI823253B (zh) 計算系統、由電腦執行的方法以及電腦程式產品
US20230055136A1 (en) Systems and methods to flush data in persistent memory region to non-volatile memory using auxiliary processor
US10613850B1 (en) Performant and secure storage and retrieval of firmware variables
TW202132982A (zh) 監控及復原異質性元件的系統及方法