CN116414619A - 计算机系统以及在计算机系统中执行的方法 - Google Patents
计算机系统以及在计算机系统中执行的方法 Download PDFInfo
- Publication number
- CN116414619A CN116414619A CN202210441156.8A CN202210441156A CN116414619A CN 116414619 A CN116414619 A CN 116414619A CN 202210441156 A CN202210441156 A CN 202210441156A CN 116414619 A CN116414619 A CN 116414619A
- Authority
- CN
- China
- Prior art keywords
- smi
- memory
- data
- processing unit
- central processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000015654 memory Effects 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 18
- 230000001960 triggered effect Effects 0.000 description 9
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Bus Control (AREA)
Abstract
一种用以在计算机系统中,储存与系统管理中断(SMI)有关的数据的系统及方法。在中央处理单元上接收系统管理中断的通知。中央处理单元进入系统管理模式。基本输入输出系统(BIOS)的系统管理处理程序由中央处理单元的自我启动处理器执行。系统管理中断经由自我启动处理器启动。将系统管理中断数据储存于自我启动处理器的寄存器中。SMI数据被转换成可存取的格式。将转换后的SMI数据储存于存储器中。
Description
技术领域
本发明是关于计算机系统中的运行可靠度,特别是关于一种系统,上述系统允许对系统管理中断(system management interrupt(SMI))数据进行可存取记录,以便做进一步分析。
背景技术
服务器被大量使用于高需求应用程式,例如基于网络的系统(network basedsystem)或数据中心(data center)。云端计算应用程式的出现使数据中心的需求增加。数据中心具有多个用以储存数据及执行应用程式的服务器,上述应用程式由远程联机的计算机装置用户存取。典型的数据中心具有附带电源的物理机架结构(physical rackstructure)以及通讯连接。每个机架可以容纳多个应用程式服务器及储存服务器。每个服务器一般包含硬件元件,例如处理器、存储装置、网络接口卡、电源供应器以及其他特殊化硬件。每个服务器一般包含一基板管理控制器(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)运行时执行系统管理操作。在执行时间内,中央处理单元(centralprocessing 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被设计为一个特殊的处理器,并且通常是无法存取的。就绪存取(readyaccess)储存在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 volatilememory)。另一种实施方式为,在上述存储器中的上述数据可以经由一操作系统驱动程式(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的一类型是否需要一重新启动,上述自我启动处理器执行上述系统管理中断处理程序,将与上述系统管理中断相关的数据储存至上述易失性存储器或上述非易失性存储器中。
附图说明
本揭示从接下来范例实施例的描述并参考附带的图示会更好理解,其中:
图1为一计算系统的方块图,上述计算系统包含允许在一可存取位置记录SMI数据的固件;
图2为一程序图,展示了在SMI期间记录功能的实施方式;
图3A为一范例的日志条目(entry),上述日志条目有关于硬件产生的中断;
图3B为一范例的日志条目,上述日志条目有关于软件产生的中断;
图4为一数据的表格,上述数据以JSON格式从范例的例程(routine)搜集而来;
图5为一范例的例程的流程图,上述范例的例程用以中断及搜集SMI数据;
图6为一范例的例程的流程图,上述范例的例程用以在一重新启动后决定SMI数据的储存位置。
本揭示很容易有多种修改及替代型式。一些代表性的实施例已经在图式中以范例的方式展示过,并在此将详细描述。然而,应理解本发明不该限制于任何揭示过的型式。相反的,本揭示涵盖了所有落入如权利要求中定义的本发明精神及范围中的修改、相等以及替代。
附图标记:
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:类型特征列
具体实施方式
本发明能以多种不同的型式实施。代表性的实施例在图式中展示,并将在此详细的描述。本揭示是本揭示的原则的范例或示意,并不应该用以将本揭示的广泛面向限制于示意说明的实施例。在此范围下,揭示的元素及限制,举例来说,在摘要、发明内容以及实施方式中提到,但是在权利要求中没有明确说明的部分,不应该由实施方式、推测或其他方式单独或集体地被纳入权利要求中。为了便于本描述详细说明,在适当的地方除非特别声明,单数包含复数,且反之亦然;“包含”这个词意思是“包含但不限于”。此外,用来表示近似的词,例如“大约”、“几乎”、“大致上”、“大概”及相似的词在此可以被用以代表“在”、“附近”、“几乎在”、“在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 linememory modules(DIMM)),以及硬盘驱动器(hard disk drive)。
计算机系统100包含一共享存储器130,共享存储器130可以为静态随机存取存储器(SRAM)。计算机系统100也包含一非易失性存储器132,非易失性存储器132可以为一闪存或一类似的装置。一BMC专用闪存134储存BMC固件,以及一系统错误日志(SEL)136。在本范例中,非易失性存储器132和BMC专用闪存134可以为同一个闪存,也可以是分开的闪存。BMC114可以存取BMC专用闪存134以增加SEL 136中的条目(entry)。一外部装置(例如在一数据中心内的一管理服务器)可以经由一网络接口和BMC 114通讯以读取SEL 136中的条目。BMC114也可以存取已写入共享存储器130中的数据。在本范例中,共享存储器130为在一BMC芯片上的内部RAM,举例来说,BMC芯片可为由信骅科技(ASPEED)所提供的芯片(例如AST2500),内部RAM映射到(map to)系统存储器。
在本范例中,计算机系统100包含多个存取南桥芯片124所管理的输入/输出功能的硬件周边装置。在本范例中,上述硬件周边装置包含周边元件接口高速版(peripheralcomponent interface express(PCIe))装置、双行存储器模块(DIMM)、硬盘驱动器(harddisk drive(HDD))或固态硬盘(solid state drives(SDD))、通用串行总线(universalserial bus(USB))装置、串行周边接口(serial peripheral interface(SPI))装置,以及系统管理总线(system management bus(SMBUS))装置。上述PCIe装置可以包含扩充卡(expansion card),例如网络接口卡(Network Interface Card(NIC))、容错式磁盘阵列(redundant array of inexpensive disk(RAID))卡、现场可编程逻辑阵列(fieldprogrammable 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执行时,用以由平台BIOS112执行系统管理操作的操作模式。在计算机系统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装置。固件(例如平台BIOS112)可以接收上述写入并请求上述处理器芯片组触发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))先进配置与电力接口(AdvancedConfiguration 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 setupoption)可以包含用以停用搜集功能的一选项,以防止在SMM中花费过多时间。在本范例中,SMI处理程序160搜集上述SMI数据并将上述SMI数据转换成一可存取的数据格式。在本范例中,原始SMI数据被转换成一JavaScript对象表示法(JSON)格式以储存至一可存取的存储器中。也可以使用其他可存取的数据格式,上述可存取的数据格式最好是一公开标准文件格式并可以被用来做数据交换。
SMI处理程序160之后会基于SMI的类型,把已转换的数据储存至易失性(BMC共享存储器,例如共享存储器130)或非易失性存储器空间中(NVRAM、非易失性存储器132)。在一般情况下,当SMI的类型不需要系统重新启动,SMI处理程序160会将上述SMI数据储存至共享存储器130,使得用户可以经由一操作系统(OS)驱动程式检索(retrieve)数据。因为BMC114也会存取共享存储器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存取。
上述例程从一原本的启动流程开始,举例来说,上述原本的启动流程可以为BIOSPOST的执行(610)。接下来,上述例程判定在非易失性存储器中是否有储存一SMI数据记录(612)。若是在非易失性存储器中有储存SMI数据,上述例程将数据写入共享存储器中(614)。接下来,上述例程循环到原本的启动流程(616)。若是在非易失性存储器中没有储存SMI数据,上述例程继续原本的启动流程(616)。借由这个方法,在重新启动后,任何先前储存在非易失性存储器中的SMI数据,现在可以经由共享非易失性存储器存取。
图5与图6中的流程图为机器可读指令(machine readable instruction)的代表性范例,上述机器可读指令用以在图1中的计算机系统100中执行SMI数据的记录及储存。在本范例中,上述机器可读指令包含用以由(a)一处理器;(b)一控制器;及/或(c)一或多个合适的处理装置执行的一算法。上述算法可以在软件中实施,上述软件储存在有形的介质中,举例来说,上述有形的介质可以为闪存、CD-ROM、软式磁盘(floppy disk)、硬盘(harddrive)、数字光盘(digital video(versatile)disk(DVD)),或是其他存储装置。然而,本技术领域中具有通常技术的人应该可以理解,整个算法及/或其中的部份可以选择性地由处理器以外的装置执行,及/或在固件或专用硬件中使用公知的方法执行(例如可以由一专用集成电路(application specific integrated circuit(ASIC))、一可编程逻辑器件(programmable logic device(PLD))、一现场可编程逻辑器件(field programmablelogic device(FPLD))、一现场可编程门阵列(field programmable gate array(FPGA))、离散逻辑(discrete logic)等执行)。举例来说,接口的任何或所有元件可以由软件、硬件,及/或固件执行。此外,由流程图表示的一些或全部的机器可读指令可以用手动执行。进一步而言,虽然范例的算法是参照图5与图6示意的流程图描述,本技术领域中具有通常技术的人应该可以了解,执行范例的机器可读指令的许多其他方法可以选择性地被使用。举例来说,方块执行的顺序可以改变,及/或一些描述的方块可以被改变、删除或合并。
在本应用中,“元件”、“模块”、“系统”或是相似的词通常指一计算机相关实体,可以为硬件(例如一电路)、硬件及软件的组合、软件,或是与具有一或多个特殊功能的一操作机器相关的一实体其中之一。举例来说,一元件可以为在一处理器(例如数字信号处理器(digital signal processor))上执行的一程序、一处理器、一对象、一可执行的一线程、一程式,及/或一计算机,但不限定于此。举例来说,在一控制器上执行的一应用程式以及控制器都可以为一元件。一或多个元件可以在一程序及/或执行的线程中,且一元件可以位于一计算机及/或分布在二个或更多个计算机间。进一步而言,一“装置”可以为特别设计的硬件、通用的硬件(借由在上述通用的硬件上执行的软件特殊化,并能够执行特殊功能)、储存在一计算机可读媒体上的软件、或是其中的组合的形式。
虽然本发明的多个实施例已在之前描述过,应该理解描述过的实施例只是以例子的方式呈现,并没有被限制。虽然本发明已经参照一或多个实施方式示意说明及描述,本技术领域的其他技术人员在阅读及理解本详细说明及附属的图示时,将想到或知道相等的改动及修改。此外,虽然本发明的一特定特征对于一些实施方式中的一个可能已经揭示,那样的特征可以和一或多个其他实施方式的其他特征结合,并且在任何给定的或特定的应用中可能是有需要或是有利的。因此,本发明的广泛性及范围不应该被限制于任何以上描述过的实施例。反而,本发明的范围应该根据接下来的权利要求及权利要求的均等范围定义。
在此使用的词汇只是为了描述特定的实施例,不应该用以限制本发明。除非内文特别指出,在此使用的单数“一”及“上述”旨在包含复数。进一步而言,在某种程度上,被使用在实施方式及/或权利要求中的“包含”、“具有”或其中的变化,旨在以类似于“包括”的方式纳入。
除非另外定义,在此使用的所有术语(包含技术及科学术语)与本技术领域中具有通常技术的人所理解的一样。进一步而言,术语应该被解释为具有和术语在先关技术背景下的意义一致的意义,且除非在此明确定义,不被以理想化或过度型式(formal)的方式解释。举例来说,上述术语可以为定义于一般使用的字典中的那些术语。
Claims (10)
1.一种计算机系统,包含:
基本输入输出系统(BIOS);
存储器;以及
中央处理单元,所述中央处理单元耦接所述存储器及所述BIOS,所述中央处理单元包含自我启动处理器,所述自我启动处理器执行储存于所述BIOS中的系统管理中断处理程序,以在系统管理模式中触发系统管理中断(SMI);其中,所述自我启动处理器执行所述系统管理中断处理程序以将与所述SMI相关的数据储存于所述存储器中。
2.如权利要求1的计算机系统,还包含基板管理控制器(BMC),所述BMC耦接所述存储器,其中所述存储器为耦接所述BMC的闪存,其中所述BMC将所述数据储存至系统错误日志上,储存在所述系统错误日志上的所述数据可经由智能平台管理接口(IPMI)指令存取。
3.如权利要求1的计算机系统,其中所述存储器中的所述数据可经由操作系统驱动程式存取。
4.如权利要求1的计算机系统,还包含易失性存储器,其中所述存储器为非易失性存储器,其中所述自我启动处理器判定所述SMI的类型,并基于所述SMI的所述类型请求重新启动,在所述中央处理单元的重新启动后,将所述易失性存储器中的所述数据复制到所述非易失性存储器中。
5.如权利要求1的计算机系统,其中所述SMI是借由以下其中之一者所启动:硬件元件向所述中央处理单元的南桥芯片的输入端口传送信号;在所述中央处理单元上的可靠性-可用性-可维护性(RAS)固件;对接周边装置的操作系统。
6.一种在计算机系统中储存与系统处理中断(SMI)有关的数据的方法,包含:
在中央处理单元上接收所述SMI的通知;
进入系统管理模式;
经由所述中央处理单元的自我启动处理器执行基本输入输出系统(BIOS)的系统管理处理程序;
经由所述自我启动处理器启动所述SMI;
将SMI数据储存至所述自我启动处理器的寄存器中;
将所述SMI数据转换成可存取的格式;以及
将已转换的所述SMI数据储存于存储器中。
7.如权利要求6的方法,其中所述存储器为耦接基板管理控制器(BMC)的闪存,其中所述BMC将已转换的所述SMI数据储存至系统错误日志上。
8.如权利要求6的方法,还包含:
判定所述SMI的类型是否需要重新启动;
重新启动所述中央处理单元,其中所述存储器为非易失性存储器;以及
在所述重新启动后,将在所述存储器中的已转换的所述SMI数据复制至易失性共享存储器中。
9.如权利要求6的方法,其中所述SMI是借由以下其中之者所启动:
硬件元件向所述中央处理单元的南桥芯片的输入端口传送信号;
可靠性-可用性-可维护性(RAS)固件;或是
对接周边装置的操作系统。
10.一种计算机系统,包含:
基本输入输出系统(BIOS);
易失性共享存储器;
非易失性存储器;以及
中央处理单元,所述中央处理单元耦接所述易失性共享存储器、所述非易失性存储器以及所述BIOS,所述中央处理单元包含自我启动处理器,所述自我启动处理器执行储存于所述BIOS中的系统管理中断(SMI)处理程序,以在系统管理模式中触发系统管理中断;
其中,基于所述SMI的类型是否需要重新启动,所述自我启动处理器执行所述SMI处理程序以将与所述SMI相关的数据从所述自我启动处理器的寄存器储存至所述易失性共享存储器或是所述非易失性存储器中。
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 (1)
Publication Number | Publication Date |
---|---|
CN116414619A true CN116414619A (zh) | 2023-07-11 |
Family
ID=86897776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210441156.8A Pending CN116414619A (zh) | 2021-12-29 | 2022-04-25 | 计算机系统以及在计算机系统中执行的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11900150B2 (zh) |
JP (1) | JP7430220B2 (zh) |
CN (1) | CN116414619A (zh) |
TW (1) | TWI832188B (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194614B2 (en) * | 2004-03-09 | 2007-03-20 | Inventec Corporation | Boot swap method for multiple processor computer systems |
US20060282589A1 (en) * | 2005-06-08 | 2006-12-14 | Dell Products L.P. | System and method of processing system management interrupts (SMI) in a multi-processor environment |
US20090037932A1 (en) | 2007-08-01 | 2009-02-05 | Clark Michael T | Mechanism for broadcasting system management interrupts to other processors in a computer system |
CN104205043B (zh) * | 2012-02-22 | 2017-09-22 | 慧与发展有限责任合伙企业 | 对计算机上的操作系统隐藏逻辑处理器 |
EP3206127B1 (en) | 2013-11-22 | 2019-03-06 | Huawei Technologies Co., Ltd. | Method, computer, and apparatus for migrating memory data |
US9158628B2 (en) | 2013-11-27 | 2015-10-13 | American Megatrends, Inc. | Bios failover update with service processor having direct serial peripheral interface (SPI) access |
US9529750B2 (en) | 2014-07-14 | 2016-12-27 | American Megatrends, Inc. | Service processor (SP) initiated data transaction with bios utilizing interrupt |
US10474596B2 (en) * | 2015-06-25 | 2019-11-12 | Intel Corporation | Providing dedicated resources for a system management mode of a processor |
JP2018055337A (ja) | 2016-09-28 | 2018-04-05 | 富士通株式会社 | 情報処理装置およびプログラム |
US20190004818A1 (en) | 2017-06-29 | 2019-01-03 | American Megatrends Inc. | Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof |
US10901821B2 (en) * | 2017-10-31 | 2021-01-26 | Insyde Software Corp. | System and method for sending restful commands to UEFI firmware using UEFI variable services |
WO2020000354A1 (en) * | 2018-06-29 | 2020-01-02 | Intel Corporation | Cpu hot-swapping |
US11593121B1 (en) * | 2018-09-11 | 2023-02-28 | American Megatrends International, Llc | Remotely disabling execution of firmware components |
JP2020057257A (ja) | 2018-10-03 | 2020-04-09 | 富士通株式会社 | 情報処理装置及び修復管理プログラム |
US20210081234A1 (en) * | 2019-09-18 | 2021-03-18 | Dell Products, Lp | System and Method for Handling High Priority Management Interrupts |
US11526411B2 (en) * | 2020-02-13 | 2022-12-13 | Dell Products L.P. | System and method for improving detection and capture of a host system catastrophic failure |
DE112020007303T5 (de) | 2020-06-08 | 2023-05-04 | Hewlett-Packard Development Company, L.P. | Sicheres hochfahren von rechenvorrichtungen |
-
2021
- 2021-12-29 US US17/646,449 patent/US11900150B2/en active Active
-
2022
- 2022-03-29 TW TW111111785A patent/TWI832188B/zh active
- 2022-04-25 CN CN202210441156.8A patent/CN116414619A/zh active Pending
- 2022-06-27 JP JP2022102636A patent/JP7430220B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20230205574A1 (en) | 2023-06-29 |
US11900150B2 (en) | 2024-02-13 |
TW202326431A (zh) | 2023-07-01 |
TWI832188B (zh) | 2024-02-11 |
JP2023098807A (ja) | 2023-07-11 |
JP7430220B2 (ja) | 2024-02-09 |
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 | |
US7447934B2 (en) | System and method for using hot plug configuration for PCI error recovery | |
US6934879B2 (en) | Method and apparatus for backing up and restoring data from nonvolatile memory | |
US11526411B2 (en) | System and method for improving detection and capture of a host system catastrophic failure | |
TW202234239A (zh) | 預防於開機自我檢測常式中因錯誤的bios設定所造成停機的方法、系統及bios晶片 | |
US6725396B2 (en) | Identifying field replaceable units responsible for faults detected with processor timeouts utilizing IPL boot progress indicator status | |
US10514972B2 (en) | Embedding forensic and triage data in memory dumps | |
WO2019079132A1 (en) | ERROR RECOVERY IN NON-VOLATILE STORAGE SHEET MUSIC | |
US10515682B2 (en) | System and method for memory fault resiliency in a server using multi-channel dynamic random access memory | |
US10911259B1 (en) | Server with master-slave architecture and method for reading and writing information thereof | |
US10635554B2 (en) | System and method for BIOS to ensure UCNA errors are available for correlation | |
CN114902186A (zh) | 非易失性存储器模块的错误报告 | |
TWI777628B (zh) | 電腦系統及其專用崩潰轉存硬體裝置與記錄錯誤資料之方法 | |
TWI832188B (zh) | 電腦系統以及在電腦系統中執行的方法 | |
US11593209B2 (en) | Targeted repair of hardware components in a computing device | |
JP4299634B2 (ja) | 情報処理装置及び情報処理装置の時計異常検出プログラム | |
US6970986B1 (en) | Software based system and method for I/O chip hiding of processor based controllers from operating system | |
US7266711B2 (en) | System for storing data within a raid system indicating a change in configuration during a suspend mode of a device connected to the raid system | |
JPH1165898A (ja) | 電子計算機の保守方式 | |
JP2003022222A (ja) | 情報処理装置及びその保守方法 | |
US10613850B1 (en) | Performant and secure storage and retrieval of firmware variables | |
EP4388421A1 (en) | Systems and methods to flush data in persistent memory region to non-volatile memory using auxiliary processor | |
JP2016076152A (ja) | エラー検出システム、エラー検出方法およびエラー検出プログラム | |
CN116741254A (zh) | 一种数据存储方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |