CN113672250A - 用于存储器设备固件升级的接口和热重置路径 - Google Patents
用于存储器设备固件升级的接口和热重置路径 Download PDFInfo
- Publication number
- CN113672250A CN113672250A CN202011519016.5A CN202011519016A CN113672250A CN 113672250 A CN113672250 A CN 113672250A CN 202011519016 A CN202011519016 A CN 202011519016A CN 113672250 A CN113672250 A CN 113672250A
- Authority
- CN
- China
- Prior art keywords
- firmware
- activation
- memory
- information
- warm reset
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/142—Reconfiguring to eliminate the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- 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
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
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)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
系统、设备和方法可以提供一种技术,该技术在系统固件与操作系统(OS)之间交换激活信息,其中激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者。该技术还基于激活信息来对设备固件进行运行时升级,其中,运行时升级绕过计算系统的重启。
Description
相关申请的交叉引用
本申请要求2020年5月15日提交的美国临时专利申请号63/025,587的优先权权益。
技术领域
实施例总体上涉及固件升级。更具体地,实施例涉及用于存储设备固件升级的接口和热重置路径。
背景技术
诸如INTEL OPTANE持久性存储器模块(PMem)(也称为持久性存储器,以前称为 OptaneTM数据中心持久性存储器模块(DCPMM))技术之类的存储器设备可提供持久性存储器和易失性存储器,并与处理器技术结合使用,系统可以支持多种存储器模式(诸如1LM、存储器模式(2LM)和App-Direct(应用-直接))。当云服务提供商(CSP)使用此存储器技术时,在不重启系统的情况下升级DCPMM固件以应用错误修复、应用变通办法以及添加对问题进行遥测调试/找根本原因的能力可以是有利的(例如,减少服务中断,以满足与最终客户的服务水平协议(SLA))。在当前部署中,存储器设备上的固件更新需要重启才能使新固件生效。
附图说明
通过阅读以下说明书和所附权利要求并通过参考以下附图,实施例的各种优势对本领域技术人员将变得显而易见,其中:
图1是根据实施例的固件激活状态转变的示例的状态图;
图2是根据实施例的对操作系统(OS)和平台固件(FW)进行操作的方法的示例的流程图;
图3和图4是根据实施例的具有不同类型的包含固件的存储器设备的插槽系统的示例的框图;
图5A-图5B是定义完成超时支持的PCIe(外围组件互连Express)规范的部分的示例的图示;
图6是根据实施例的用于存储器设备固件更新的BIOS-OS(基本输入输出系统到OS)接口的示例的框图;
图7A-图7B是根据实施例的经由热重置进行存储器设备固件的运行时升级的方法的示例的流程图;
图8A是根据实施例的对性能增强的计算系统进行操作的方法的示例的流程图;
图8B是根据实施例的进行热重置的方法的示例的流程图;
图9是根据实施例的计算系统的示例的框图;
图10是根据实施例的半导体设备的示例的图示;
图11是根据实施例的处理器的示例的框图;以及
图12是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
常规解决方案缺少用于在运行时期间升级存储器设备固件的技术。NVMe(快速非易失性存储器)标准提供了一种无需PCIe链路重置即可升级NVMe设备固件、并且不静默(例如,暂停)来自其他输入/输出(I/O)设备的主机存储器通信量的机制。因此,NVMe标准定义的机制不能用于存储器设备。
在下一代的存储器设备中,可以引入运行时固件升级而不重启。
存储器设备运行时固件升级可能要求静默对存储器的访问(例如,长达500毫秒)以激活新固件。诸如PCIe设备之类的I/O设备实现PCIe完成超时(CTO)机制,在该机制中,如果I/O设备向主机存储器或配置访问作出请求,则如果访问未在由PCIe规范定义的(图5中的示例)指定时间内返回,则将导致PCIe CTO错误。该错误可能导致系统重置。通常,OS将PCIe设备配置为以默认的PCIe完成超时模式(即,50us到50ms的数量级)操作设备。使存储器访问静默超过10ms至50ms将导致I/O(输入/输出)设备超时、OS服务超时和/或系统重启。为了处理存储器设备固件升级期间的这些超时,需要协调平台固件、OS和I/O设备。实施例提供了一种解决固件升级期间OS和I/O超时问题的机制。
在实施例中,平台固件(例如,BIOS和/或UEFI(统一可扩展固件接口))将存储器设备固件升级功能信息连同包括处理器和I/O静默时间的估计的固件激活时间一起发布到OS。一旦暂存(多个)存储器设备固件,基于提供给OS的信息,OS将为估计的处理器和I/O静默超时做准备(例如,OS实施I/O设备静默或平台固件实施I/O设备静默)并调用平台固件以激活存储器设备固件。在平台固件完成存储器设备的激活之后,OS可以恢复服务(例如,重新评估中断、计时器和重新启动I/O服务等)以继续操作。
所提出的解决方案使存储器技术客户/CSP能够(例如,经由用户请求)部署运行时固件升级解决方案而无需重启。该解决方案通过提供存储器技术固件错误修复、变通方法、可靠性、可用性和可维护性(RAS)解决方案,并提供更好的调试/找根本原因的解决方案,从而提高具有存储器技术产品的平台的质量。
操作理论
NVDIMM(非易失性双列直插式存储器模块)设备使用固件来执行各种初始化和运行时操作。在产品鉴定和部署之后,通常通过固件更改来解决安全性、错误修复、变通方法、用于对问题进行进行调试/找根本原因的遥测。为了升级NVDIMM固件,可能需要重置系统或重置NVDIMM,这可能导致长的服务停机时间。为了减少停机时间,引入了固件的运行时(例如,无需重启系统)。
传统地,为了使用和管理NVDIMM,已经在UEFI、ACPI(高级配置和功率接口)和PMEM.io规范中定义了接口。即系统管理BIOS(SMBIOS)、ACPI E820、UEFI获取存储器映射、系统资源关联性表(SRAT)、系统定位距离信息表(SLIT)、NVDIMM固件接口表(NFIT)、异构存储器属性表(HMAT)和设备特定方法(DSM)接口。在一个示例中,四个DSM被添加到NVDIMMDSM接口规范中。NVDIMM根设备级别上的两个DSM接口调用:
-获取设备运行时固件激活信息
-激活固件
以及在NVDIMM子叶设备级别上的两个DSM接口调用:
-获取设备运行时固件激活状态
-设置设备运行时固件激活装备状态
在其他实施例中,也可以使用具有类似信息和动作的接口。例如,另一个示例可以假定所有设备始终被装备,而不是有选择地装备设备。
可以使用现有的DSM或OOB(带外)或通过专有驱动器机制将NVDIMM固件下载到NVDIMM设备。如果在运行时激活新固件需要暂停对主机存储器的访问,则OS了解计时信息并在暂停对主机存储器的访问和激活新的NVDIMM固件之前进行准备。如果平台固件无法暂停存储器通信量达估计的时间,则OS可以准备暂停I/O存储器通信量,并控制平台固件以激活新的NVDIMM固件。如果一次激活一个NVDIMM固件,则在系统上激活新固件的估计总时间将是系统中NVDIMM的总数乘以每个NVDIMM的估计的激活时间。对于一些OS服务,该结果可能无法容忍。因此,可以并行激活NVDIMM固件以减少服务中断时间。在实施例中,如果可能,NVDIMM根级别_DSM协助并行地激活NVDIMM固件。
如果要在固件激活期间静默I/O设备,则可以考虑以下选项:
-如果平台固件能够暂停对主机存储器的I/O和处理器访问并且能够激活新的NVDIMM固件,则进行实时激活。
-如果OS可以通过禁用总线主控或通过暂停/休眠I/O设备的主机存储器访问来禁用对主机存储器的设备总线主控功能、从而静默I/O设备对主机存储器的访问,并且如果平台固件可以暂停处理器对主机存储器的访问并激活新的NVDIMM固件,则实时激活。
-如果平台可以在热重置期间支持NVDIMM固件激活并且OS可以忍受热重置,则执行基于热重置的激活。在该情况下,I/O设备正在经历重置,从而自然停止了I/O设备对主机存储器的访问。
-基于系统重置的激活-系统重置导致NVDIMM固件的激活。
前三个选项除OS协助外还包括平台固件协助,并且NVDIMM处于装备状态以便激活固件。通过根“获取设备运行时固件激活信息”DSM调用来获得平台固件激活功能。
图2示出了根据一个或多个实施例的存储器设备固件激活的系统级流程30。以下序列提供了用于激活新固件的示例操作:
-处理框32(例如,使用DSM或通过专有机制)将新固件下载到NVDIMM。
-通过调用“获取设备运行时固件激活信息”并检查固件激活功能字段来确定平台是否支持运行时固件激活。如果各个DIMM支持运行时固件激活或需要关机以进行激活,则可通过“获取固件信息”固件更新功能字段来检取固件。
-处理框34使用子“设置设备运行时固件激活装备状态”功能来装备NVDIMM(可选地,可以在下载固件之前进行装备和获取估计的时间)。
-处理框36使用根“获取设备运行时固件激活信息”来获取估计的时间。
-估计的时间可能取决于装备了哪些NVDIMM而不同。
-估计的计时提供估计的固件激活时间、固件激活期间的估计的处理器静默时间以及固件激活期间的估计的I/O静默时间。在实施例中,估计的激活时间包括处理器和I/O静默时间,并且处理器静默时间包括I/O静默时间。如果在固件激活期间DIMM需要I/O或处理器静默,则可以通过“获取固件信息”固件更新功能字段检取固件。
-如果估计的I/O静默时间大于平台支持的最大I/O静默时间,则解装备一些DIMM并重新评估。如果没有任一者小于平台最大I/O静默时间,则可能无法实时激活:
-使用根“获取设备运行时固件激活信息”来获得固件激活功能。
-处理框38使OS准备好调用平台固件以激活新的NVDIMM固件。
-如果固件激活功能在框40中指示“平台固件管理的处理器和I/O静默支持实时激活”,并且如果OS可以忍受估计的计时:
-OS完成所有未决的PMem模块邮箱访问。
-处理框42调用根“激活固件”框48(48a-48i)以激活装备的NVDIMM上的固件。
-通过轮询根“获取设备运行时固件激活信息”方法,等待“固件激活状态”变为空闲。
-通过在每个装备的NVDIMM子方法上调用“获取设备运行时固件激活信息”并检查“最后的固件激活状态”来确定固件激活。
-处理框44重新评估计时器,使得如果OS使用SW(软件)中断来管理时间,则OS时间与挂钟时间(例如,经过的实际时间)匹配。
-如果固件激活功能框40指示“OS管理的I/O静默(设备空闲)和平台管理的处理器静默支持实时激活”,则OS可以使I/O设备空闲:
-OS完成所有未决的PMem模块邮箱访问。
-处理框46将I/O设备置于空闲状态(完成所有现有的总线主控/DMA(直接存储器访问)周期,并停止由I/O设备启动新的总线主控/DMA周期)。
-调用根“激活固件”框48以激活装备的NVDIMM上的固件。
-通过轮询根“获取设备运行时固件激活信息”方法,等待“固件激活状态”变为空闲。
-通过在每个装备的NVDIMM子方法上调用“获取设备运行时固件激活信息”并检查“最后的固件激活状态”来确定固件激活。
-一旦完成固件激活,OS就将I/O设备恢复到正常操作状态。
-处理框44重新评估计时器,使得如果OS使用SW中断来管理时间,则OS时间与挂钟时间匹配。框45恢复OS和服务。
-如果固件激活功能指示“支持基于热重置的激活”并且OS可以容忍热重置:
-OS准备热重置。
--如果框49确定OS无法停止I/O设备DMA,则过程框50调用热重置。
-在热重置流程期间,平台固件激活NVDIMM。
-重新加载OS时,正在使用新的NVDIMM固件。
-如果以上条件均不可行,则需要系统重置以激活固件。
-在系统重置时,不管装备状态如何,都激活暂存的固件。
在一个示例中,如果在装备的DIMM上没有可用的固件,则框48a返回,其中,框48b确定是否要使用固件管理的I/O超时。如果否,则如果PCIe设备不支持估计的PCIE完成超时(CTO),则框48c可以返回。在实施例中,框48d保存PCIe设备CTO并调整为新的PCI CTO。框48e可以等待当前的CTO排空事务并将CTO设置为大于估计的时间。在实施例中,框48f使存储器访问静默。所图示的框48g激活存储器设备固件,其中在框48h处恢复PCIe设备CTO。框48i可以更新状态并从系统管理中断(SMI)返回。如果在框48b处确定不使用固件管理的I/O超时,则根“激活固件”框48可以绕过框48c-48e并直接进行到框48f。
图1示出了具有固件激活状态转变的状态机20。
并非所有PCIe设备都可以支持大于10毫秒(或存储器设备所需的存储器访问时间)的I/O设备完成超时。在这些情况下,平台固件可能无法动态调整I/O设备超时并使系统静默。在这些情况下,估计的超时将通过DSM调用反映信息,并且OS阻止I/O设备在调用激活固件之前生成任何DMA,或者OS执行热重置或冷重置以激活新固件。
DSM中的一些相关参数
NVDIMM根DSM:
-获取设备运行时固件激活信息(输出)
-状态
-固件激活状态
-空闲
-装备的
-忙碌
-固件功能
-平台固件管理的处理器和I/O静默支持实时激活
-OS管理的I/O静默(设备空闲)和平台管理的处理器静默支持实时激活
-支持基于热重置的激活
-冷重置激活新固件
-估计的固件激活时间
-估计的固件激活的固件静默时间
-估计的固件激活的I/O访问存储器静默时间
-平台固件支持的最大I/O访问存储器静默时间
-激活固件
-I/O设备状态(输入)
-平台固件管理的I/O和处理器静默
-OS管理的I/O静默和平台固件管理的处理器静默
-状态(输出)
NVDIMM子DSM
-获取设备运行时固件激活状态(输出)
-状态
-固件激活状态
-空闲
-装备的
-忙碌
-设置设备运行时固件激活装备状态(输入)
-装备状态
-未装备(解除装备)
-装备的
尽管以上DSM被用作描述概念的示例,但是可以使用不同的DSM、ACPI或UEFI或专有驱动器模型技术来实现该技术,并在OS与平台固件之间传递相似的信息以实现相似的行为。无论如何,在平台固件与OS之间、以及在平台固件和OS行为之间都交换信息,以便在不重启系统的情况下更新存储器设备固件。
图3示出了具有包含固件的存储器设备的双插槽系统60。
热重置
存储器设备运行时固件升级可能涉及静默对存储器的访问长达500毫秒以激活新固件。在当前的系统部署中,当今使用的大多数PCIe设备不支持超过10毫秒的PCIe设备完成超时。现有的广泛部署的OS(例如,WINDOWS/LINUX)均不支持在运行时期间停止所有I/O设备执行DMA(直接存储器访问)以激活新固件。实施例提供了一种用于平台固件的机制,以便在不丢失OS存储器内容的情况下激活存储器设备固件并快速恢复OS操作。
平台固件(BIOS/UEFI)将存储器设备固件升级功能信息与估计的固件激活时间(包括处理器和I/O静默时间)一起发布到OS。
一旦暂存了(多个)存储器设备固件,OS就可以装备存储器设备以供固件激活,并调用热重置或保留OS存储器的热重置来激活新固件。
在实施例中,平台固件(BIOS/BMC(基板管理控制器))使存储器通信量静默并在热重置路径中激活新固件而不丢失OS存储器内容。
所提出的解决方案使得能够在无需重启系统的情况下或在OS处于活动状态(例如,活跃)时广泛部署存储器技术固件升级。
存储器技术客户和CSP可以为设备固件升级解决方案部署存储器,而不丢失OS内容或重启。该解决方案通过提供存储器技术固件错误修复、变通方法、RAS解决方案,并提供更好的调试/找根本原因的解决方案,从而提高具有存储器技术产品的平台的质量。
图4示出了具有包含固件的PMem存储器设备的双插槽计算机系统70。存储器设备可以与其他存储器设备交错。一些存储器设备可以充当其他存储器设备的高速缓存存储器。诸如PMem之类的存储器设备可以带有具有固件的存储器设备控制器,该存储器设备控制器支持存储器链路初始化、错误处理、断电/故障处理、永久性存储器、损耗均衡、读/写干扰、自我监测、分析和报告技术(SMART)信息、安全管理、遥测、RAS处理等。
当不重启就升级存储器设备上的固件时,可以静默到存储器模块的存储器通信量,以允许诸如以下情况:
-新固件安全认证
-保存存储器设备的当前状态,使得新固件可以安全地转变状态
-在从旧固件到新固件的转变期间,没有固件在运行以处理运行时操作,诸如:
-错误、断电/故障、损耗均衡、读/写干扰、SMART等。
这些存储器设备可被处理器或I/O设备访问,该处理器或I/O设备可能不支持存储器设备升级固件所需的长时间超时。例如,如图5A-图5B的规范80、82中所示,一些PCIe设备可能不支持PCIe完成超时,导致只能在默认的50us-50ms范围内运行,或者一些PCIe设备仅支持PCIe完成超时范围A和B,而一些PCIe设备可能支持所有范围。即使设备支持整个范围ABCD,OS也可能已将设备配置为在默认范围或范围A中运行。在此类情况下,例如,如果要在500ms范围内静默存储器设备通信量,则可能发生导致系统错误的错误。在一些情况下,处理器在运行时可能不支持存储器通信量静默支持。
如图6中所示,在提出的解决方案90中,BIOS 92提供到OS 91(91a-91f,例如,ACPI表、DSM、UEFI运行时服务、UEFI NVRAM变量)和/或VMM(虚拟机监测器,例如,管理程序)的简单接口以提供基于热重置的存储器设备固件升级功能,以及装备存储器设备以供固件升级。装备机制(例如,选定的设备或全部或无)允许与现有的热重置功能兼容(例如,未升级固件)或允许固件升级。
在所图示的示例中,BIOS 92与BMC 93、存储器设备94和耦合至I/O设备96的处理器95通信。BIOS还可以向OS 91发布平台初始化97(例如,使自检/POST通电)消息。在实施例中,OS加载器91a使用平台初始化消息97来触发加载和初始化内核(kernel)91c的过程91b。所图示的内核91c触发框91d以处理BIOS-OS存储器设备固件接口、暂存固件并装备存储器设备。框91e可以在运行时固件激活可用的情况下激活固件并返回到内核91c。如果要进行基于热重置的激活,则框91f执行热重置。如果OS 91和BIOS 92支持保留存储器的重置(MPR),则在框91f处进行MPR或热重置。在实施例中,内核91c还与一个或多个虚拟机(VM)和/或应用98通信。
一旦(通过带内或OOB接口)将固件暂存到存储器设备上,存储器设备就可以通过执行热重置(保留OS存储器的热重置或正常热重置)被装备以升级固件。图7A-7B概述了用于激活新的存储器设备固件的BIOS和BMC(基板管理控制器)流程100、101。
一旦执行了热重置,处理器就获取重置的BIOS代码并执行存储器和处理器到处理器的互连(诸如INTEL超路径互连(UPI))初始化。在启用EO设备进行存储器访问之前,有两种选项可以在热重置流程中启用存储器设备固件。
选项1:
如果存储器初始化代码(也称为存储器参考代码(MRC))能够执行装备解码并激活新的存储器设备固件(如果已经暂存了固件),则在关闭非逐出模式(NEM,其中MRC代码用尽了处理器高速缓存)之前,一旦MRC中达到正常模式,MRC就可以与存储器设备进行通信,并且处理框102激活固件。在此没有启动EO设备来使用系统存储器。
因此,选项1是在启用EO设备DMA访问之前执行固件激活的一个示例。实际上,该激活可以在开始存储器初始化之前或在进行存储器初始化之后但在用尽存储器(例如,从存储器执行)之前进行。因此,使用NEM模式或MRC来激活固件是在存储器用尽之前激活固件的技术。另一种方法包括从闪存执行,并且在初始化NEM之前,与DIMM通信以激活固件。
选项2:
通常在DXE(驱动程序执行环境)中,一旦没有MRC/UPI RC代码,在初始化I/O设备之前,DXE驱动程序可以在框104中调用微控制器(诸如例如,BMC、系统管理控制器、安全控制器、功率管理控制器等),以激活新固件。在所示的框106(106a-106j)中,BMC代码依次执行静默并与存储器设备通信以激活固件。静默的原因是BIOS执行存储器不足导致对存储器设备的存储器访问,并且如果ME-SPS(可管理性引擎服务器平台服务)可以访问主机存储器,则ME-SPS可以生成存储器访问。一旦BMC完成存储器设备固件激活,BIOS就可以继续正常启动系统以进行热启动或保留OS存储器的热启动。
即使本文描述的实施例包括用于存储器设备固件更新(特别是PMem)的细节,使用上面概述的类似流程,其他固件升级(诸如微代码升级或BIOS升级的部分)也是可能的。DRAM设备可能在DIMM中具有固件,并且可以使用类似的方法进行升级。
更具体地,所示的OS框103检测用户(例如,顾客、开发人员)下载固件的请求,并且框105装备固件设备。在实施例中,框107分析估计的计时信息,并且框108使OS准备好进行存储器设备固件激活。可以在框109处确定是否可以在没有热/冷重置的情况下激活固件。如果是,则框111执行运行时固件激活,并且框113恢复OS和服务。如果在框109处确定没有热/冷重置就不能激活固件,则框115可以触发热重置或保留OS存储器的热重置。
所示的BIOS框117实施热重置,其中向系统的供电没有丢失,并且存储器设备的内容得以保留。框119可以初始化存储器和UPI链路(例如,保留存储器交错集)并进入正常模式(例如,预扩展的固件接口初始化/PEI)。在实施例中,框121确定MRC是否支持基于热重置的固件激活。如果是,则如果存在任何装备的存储器设备,则框102可以激活存储器设备固件(例如,虽然仍处于NEM模式下-用尽CPU高速缓存)。此外,框123可以实施到DXE的切换。如果在框121确定MRC不支持基于热重置的固件激活,则所示的BIOS过程绕过框102并直接进行到框123。
在一个示例中,在框125处确定是否存在被装备以用于固件激活的任何存储器设备。如果是,则所示的框104调用BMC以激活固件(例如,在初始化PCIe-I/O设备之前,没有到存储器的I/O DMA)。在实施例中,框127轮询BMC以获得响应,并且框131继续热启动过程(例如,初始化I/O设备)。如果在框125处确定没有装备用于激活的存储器设备,则BIOS过程绕过框104和127,并直接进行到框131。BIOS框133进行到OS的切换,并且OS框135恢复OS和服务。
BMC框106接受来自框104的控制,其中如果没有DCPMM被填充或者没有DIMM被装备,则框106a返回。如果MB(邮箱)门铃尚未在装备的DIMM上准备好,则框106b设置错误和未装备的状态(例如,如果所有装备都失败则返回总数)。在一个示例中,框106c启动静默计时器(例如,最大超时),其中框106d使系统静默。在实施例中,框106e写激活所有装备的DIMM上的固件。如果门铃尚未在装备的DIMM上准备好,则框106f设置错误和未装备的状态。另外,如果未设置MB兼容性或MB状态对于装备的DIMMS不成功,则框106g可以设置错误和未装备的状态。在实施例中,框106h轮询启动状态寄存器,直到激活完成。框106i可以使系统不静默,其中框106j更新激活状态并且将控制从BMC返回到框127。如果对主机存储器的UMA(统一的存储器架构)访问失败,则ME-SPS框130可以在最大静默超时后重试,而不是执行全局重置或声明UMA访问失败。另外,如果发生静默超时,则I/O设备框132确保尚未初始化I/O设备(例如,没有来自I/O设备的存储器通信量)。
图8A示出了操作性能增强的计算系统的方法110。方法110可在一个或多个模块中被实现为一组逻辑指令,这组逻辑指令被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)之类的可配置逻辑中,被存储在使用诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)的电路技术或晶体管-晶体管逻辑(TTL)技术之类的固定功能逻辑硬件或其任何组合中。
例如,可以用一种或多种编程语言的任何组合来编写用于实施在方法中所示的操作的计算机程序代码,这些编程语言包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规的过程编程语言。另外,逻辑指令可包括汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使对于硬件(例如,主机处理器、中央处理单元/CPU、微控制器等)而言是原生的电子电路和/或其他结构组件个性化的状态信息。
所示的处理框112提供在系统固件与计算系统中的OS之间交换激活信息,其中激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者。在实施例中,状态信息指示最后的固件激活状态,激活状态信息指示固件激活装备状态,并且功能信息指示热重置功能。此外,激活时间信息可以指示估计的固件激活时间,并且静默时间信息可以指示估计的静默时间。框114基于激活信息来对存储器设备固件进行运行时升级,其中,运行时升级绕过计算系统的重启。在一个实施例中,经由热重置来进行运行时升级。
图8B示出了进行热重置的方法120。方法120可在一个或多个模块中被实现为一组逻辑指令,这组逻辑指令被存储在诸如RAM、ROM、PROM、固件、闪存等之类的机器或计算机可读存储介质中,存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,存储在使用诸如例如ASIC、CMOS或TTL技术的电路技术的固定功能逻辑硬件或其任何组合中。
所示的处理框122提供用于确定与计算系统相关联的存储器参考代码(MRC,例如,存储器初始化代码)是否支持热重置。如果框124指示支持热重置,则框126可以通过基本输入输出系统(BIOS)来激活处于非逐出模式(NEM)的设备固件。在实施例中,NEM包括/涉及从处理器高速缓存执行MRC。如果框124指示不支持热重置,则框128可以调用微控制器(诸如例如,基板管理控制器(BMC)、系统管理控制器、安全控制器、功率管理控制器等,或其任意组合)以激活设备固件。在一个示例中,微控制器使计算系统静默。所示框129从存储器设备执行设备固件(例如,在设备固件被激活之后)。
图9示出了包括可执行程序指令170的计算系统150,该指令在由主机处理器152、图形处理器160、微控制器159(例如,BMC、系统管理控制器、安全控制器、功率管理控制器等)或输入/输出模块(IO)158中的一个或多个执行时,使得计算系统150执行已经讨论过的图2、图7、图8A和/或图8B中所示的方法的一个或多个方面。在实施例中,从系统存储器156(例如,双列直插式存储器模块/DIMM)中检取指令170。另外,图形处理器160、主机处理器152、微控制器159和/或IO模块158被合并到芯片上系统(SoC)162中,该芯片上系统(SoC)162也耦合到显示器164和/或网络控制器166(无线、有线)。
图10示出了半导体封装设备172。所图示的设备172包括一个或多个衬底174(例如,硅、蓝宝石、砷化镓)和耦合至(多个)衬底174的逻辑176(例如,晶体管阵列和其他集成电路/IC组件)。逻辑176可至少部分地被实现在可配置逻辑或固定功能逻辑硬件中。在一个示例中,逻辑176实现图2、图7、图8A和/或图8B中所示的方法的一个或多个方面。
在一个示例中,逻辑176包括定位(例如,嵌入)在(多个)衬底174内的晶体管沟道区。因此,逻辑176与(多个)衬底174之间的接口可以不是突变结。逻辑176还可被认为包括在(多个)衬底174的初始晶片上生长的外延层。
图11图示出根据一个实施例的处理器核200。处理器核200可以是用于任何类型的处理器的核,这些处理器诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。虽然图11中仅图示了一个处理器核200,但处理元件可替代地包括多于一个图11中所图示的处理器核200。处理器核200可以是单线程核,或对于至少一个实施例,处理器核200可以是多线程的,因为其每个核可包括多于一个的硬件线程上下文(或“逻辑处理器”)。
图11还图示出耦合至处理器核200的存储器270。存储器270可以是本领域技术人员已知的或以其他方式对本领域技术人员可用的各种各样的存储器(包括存储器层级结构的各个层)中的任何一种。存储器270可包括要由处理器核200执行的一条或多条代码213指令,其中代码213可实现已讨论的图2、图7、图8A和/或图8B中所示的方法的一个或多个方面。处理器核200遵循由代码213指示的指令的程序序列。每条指令可进入前端部分210并由一个或多个解码器220处理。解码器220可生成微操作(诸如采用预定义格式的固定宽度的微操作)作为其输出,或者可生成反映原始代码指令的其他指令、微指令或控制信号。所图示的前端部分210还包括寄存器重命名逻辑225和调度逻辑230,该调度逻辑230一般分配资源并将与供执行的转换指令相对应的操作进行排队。
处理器核200被示出为包括具有一组执行单元255-1至255-N的执行逻辑250。一些实施例可以包括专用于指定功能或功能组的大量执行单元。其他实施例可包括仅一个执行单元或可以执行特定功能的一个执行单元。所图示的执行逻辑250执行由代码指令指定的操作。
在完成执行由代码指令指定的操作之后,后端逻辑260对代码213的指令进行引退。在一个实施例中,处理器核200允许乱序执行但是要求指令的有序引退。引退逻辑265可采取如本领域技术人员已知的各种形式(例如,重排序缓冲器等等)。以此方式,至少根据由解码器生成的输出、由寄存器重命名逻辑225利用的硬件寄存器和表、以及由执行逻辑250修改的任何寄存器(未示出),处理器核200在代码213的执行期间被变换。
虽然未在图11中图示,但处理元件可包括与处理器核200一起在芯片上的其他元件。例如,处理元件可包括与处理器核200一起的存储器控制逻辑。处理元件可包括IO控制逻辑和/或可包括与存储器控制逻辑一起被集成的I/O控制逻辑。处理元件还可包括一个或多个高速缓存。
现在参考图12,所示出的是根据实施例的计算系统1000实施例的框图。图12中所示出的是多处理器系统1000,其包括第一处理元件1070和第二处理元件1080。尽管示出了两个处理元件1070和1080,但是要理解,系统1000的实施例还可包括仅一个此类处理元件。
系统1000被图示为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连1050耦合。应当理解,图12中所图示的互连中的任何或全部可被实现为多分支总线而不是点对点互连。
如图12中所示,处理元件1070和1080中的每个处理元件可以是包括第一和第二处理器核(即,处理器核1074a和1074b以及处理器核1084a和1084b)的多核处理器。此类核1074a、1074b、1084a、1084b可被配置成用于以与上文结合图11所讨论的方式类似的方式来执行指令代码。
每个处理元件1070、1080可包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a、1896b可存储分别由处理器的一个或多个组件(诸如核1074a、1074b以及1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可本地地对存储器1032、1034中所存储的数据进行高速缓存以供处理器的组件的更快速访问。在一个或多个实施例中,共享高速缓存1896a、1896b可包括一个或多个中间级别高速缓存(诸如第2级(L2)、第3级(L3)、第4级(L4)、或其他级别的高速缓存)、末级高速缓存(LLC)和/或其组合。
虽然被示出为具有仅两个处理元件1070、1080,但要理解,实施例的范围并不限于此。在其他实施例中,在给定的处理器中可存在一个或多个附加处理元件。替代地,处理元件1070、1080中的一者或多者可以是除处理器之外的元件,诸如加速器或现场可编程门阵列。例如,(多个)附加处理元件可包括与第一处理器1070相同的(多个)附加处理器、与第一处理器1070异构或不对称的(多个)附加处理器、加速器(诸如例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理元件。在包括架构、微架构、热、功耗特性等等一系列品质度量方面,处理元件1070、1080之间可存在各种差异。这些差异自身可有效地表现为处理元件1070、1080之中的不对称性和异构性。对于至少一个实施例,各处理元件1070、1080可驻留在同一管芯封装中。
第一处理元件1070可进一步包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076和1078。类似地,第二处理元件1080可包括MC 1082以及P-P接口1086和1088。如图12中所示,MC 1072和1082将处理器耦合至相应的存储器,即存储器1032和存储器1034,这些存储器可以是本地附连到相应处理器的主存储器的部分。尽管MC 1072和MC 1082被图示为被集成到处理元件1070、1080中,但对于替代实施例,MC逻辑可以是处理元件1070、1080外部的分立逻辑,而不是被集成于其中。
第一处理元件1070和第二处理元件1080可分别经由P-P互连1076、1086耦合至I/O子系统1090。如图12中所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括将I/O子系统1090与高性能图形引擎1038耦合的接口1092。在一个实施例中,可使用总线1049将图形引擎1038耦合至I/O子系统1090。替代地,点对点互连可耦合这些组件。
进而,I/O子系统1090可经由接口1096耦合至第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或诸如PCI快速(PCI Express)总线或另一第三代I/O互连总线之类的总线,但是实施例的范围不限于此。
如图12中所示,各种I/O设备1014(例如,生物计量扫描仪、扬声器、相机、传感器)可与总线桥1018一起耦合至第一总线1016,该总线桥1018可将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚计数(LPC)总线。各种设备可耦合到第二总线1020,这些设备包括例如键盘/鼠标1012、(多个)通信设备1026、以及数据存储单元1019(诸如在一个实施例中可包括代码1030的盘驱动器或其他大容量存储设备)。所图示的代码1030可实现已讨论的图2、图7、图8A和/或图8B中所示的方法的一个或多个方面。进一步地,音频I/O 1024可耦合至第二总线1020,并且电池1010可向计算系统1000供电。
注意,构想了其他实施例。例如,系统可实现多分支总线或者另一此类通信拓扑,而不是图12的点对点架构。而且,可替代地使用比图12中所示的更多或更少的集成芯片来对图12的元件进行分区。
附加说明和示例:
示例1包括一种性能增强的计算系统,该计算系统包括:网络控制器;耦合到网络控制器的处理器;耦合到处理器的存储器设备,该存储器设备包括设备固件;以及耦合到处理器的系统存储器,该系统存储器包括一组可执行程序指令,当该指令由处理器执行时,使得计算系统用于:在系统固件与操作系统(OS)之间交换激活信息,其中激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者,并基于激活信息来对设备固件进行运行时升级,其中,运行时升级绕过计算系统的重启。
示例2包括示例1的计算系统,其中,运行时升级是经由热重置进行的,状态信息指示最后的固件激活状态,激活状态信息指示固件激活装备状态,功能信息指示热重置功能,激活时间信息指示估计的固件激活时间,并且静默时间信息指示估计的静默时间。
示例3包括示例2的计算系统,进一步包括微控制器,其中,指令在被执行时进一步使得处理器用于:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例4包括示例3的计算系统,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例5包括示例3的计算系统,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例6包括示例1的计算系统,其中,OS准备以静默方式激活设备固件,并且其中一旦完成设备固件的激活,OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
示例7包括示例1至6中任一项的计算系统,其中,OS通过禁用直接存储器访问(DMA)、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出(I/O)访问,以实施设备固件的运行时激活。
示例8包括一种半导体设备,该半导体设备包括:一个或多个衬底、以及耦合至该一个或多个衬底的逻辑,其中该逻辑至少部分地在能配置的逻辑或固定功能硬件逻辑中的一者或多者中实现,该逻辑耦合至一个或多个衬底以用于:在系统固件与操作系统(OS)之间交换激活信息,其中激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者,并基于激活信息来对设备固件进行运行时升级,其中,运行时升级绕过计算系统的重启。
示例9包括示例8的设备,其中,运行时升级是经由热重置进行的,状态信息指示最后的固件激活状态,激活状态信息指示固件激活装备状态,功能信息指示热重置功能,激活时间信息指示估计的固件激活时间,并且静默时间信息指示估计的静默时间。
示例10包括示例9的设备,其中,该逻辑耦合至一个或多个衬底以用于:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例11包括示例10的设备,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例12包括示例10的设备,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例13包括示例8的设备,其中,OS准备以静默方式激活设备固件,并且其中一旦完成设备固件的激活,OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
示例14包括示例8至13中任一项的设备,其中,OS通过禁用直接存储器访问(DMA)、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出(I/O)访问,以实施设备固件的运行时激活。
示例15包括如示例8至13中任一项的设备,其中该逻辑耦合至该一个或多个衬底,该一个或多个衬底包括位于该一个或多个衬底内的晶体管沟道区。
示例16包括至少一种计算机可读存储介质,包括一组可执行程序指令,这些指令在由计算系统执行时,使得该计算系统用于:在系统固件与操作系统(OS)之间交换激活信息,其中激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者,并基于激活信息来对设备固件进行运行时升级,其中,运行时升级绕过计算系统的重启。
示例17包括示例16的至少一种计算机可读存储介质,其中,运行时升级是经由热重置进行的,状态信息指示最后的固件激活状态,激活状态信息指示固件激活装备状态,功能信息指示热重置功能,激活时间信息指示估计的固件激活时间,并且静默时间信息指示估计的静默时间。
示例18包括示例17的至少一种计算机可读存储介质,其中,指令在被执行时进一步使得计算系统用于:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例19包括示例18的至少一种计算机可读存储介质,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例20包括示例18的至少一种计算机可读存储介质,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例21包括示例17的至少一种计算机可读存储介质,其中,OS准备以静默方式激活设备固件,并且其中一旦设备固件激活完成,OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
示例22包括示例17至21中任一项的至少一种计算机可读存储介质,其中,OS通过禁用直接存储器访问(DMA)、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出(I/O)访问,以实施设备固件的运行时激活。
示例23包括一种操作性能增强的计算系统的方法,该方法包括:在系统固件与操作系统(OS)之间交换激活信息,其中激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者,并基于激活信息来对设备固件进行运行时升级,其中,运行时升级绕过计算系统的重启。
示例24包括示例23的方法,其中,运行时升级是经由热重置进行的,状态信息指示最后的固件激活状态,激活状态信息指示固件激活装备状态,功能信息指示热重置功能,激活时间信息指示估计的固件激活时间,并且静默时间信息指示估计的静默时间。
示例25包括示例24的方法,进一步包括:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例26包括示例25的方法,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例27包括示例25的方法,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例28包括示例24的方法,其中,OS准备以静默方式激活设备固件,并且其中一旦完成设备固件的激活,OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
示例29包括示例23至28中任一项的方法,其中,OS通过禁用直接存储器访问(DMA)、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出(I/O)访问,以实施设备固件的运行时激活。
示例30包括一种计算系统,该计算系统包括:微控制器;网络控制器;耦合到网络控制器的处理器;以及耦合到处理器的存储器设备,该存储器设备包括设备固件;以及耦合到处理器的系统存储器,该系统存储器包括一组可执行程序指令,当该指令由处理器执行时,使得处理器用于:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例31包括示例30的计算系统,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例32包括示例30至31中任一项的计算系统,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例33包括一种半导体设备,该半导体设备包括:一个或多个衬底、以及耦合至该一个或多个衬底的逻辑,其中该逻辑至少部分地在能配置的逻辑或固定功能硬件逻辑中的一者或多者中实现,该逻辑耦合至一个或多个衬底以用于:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例34包括示例33的设备,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例35包括示例33至34中任一项的设备,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例36包括至少一种计算机可读存储介质,包括一组可执行程序指令,这些指令在由计算系统执行时,使得该计算系统用于:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例37包括示例36的至少一种计算机可读存储介质,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例38包括示例36至37中任一项的至少一种计算机可读存储介质,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例39包括一种实施热重置的方法,该方法包括:确定与计算系统相关联的存储器初始化代码是否支持热重置,如果存储器初始化代码支持热重置,则通过基本输入输出系统(BIOS)来激活设备固件;以及如果存储器初始化代码不支持热重置,则调用微控制器来激活设备固件,其中,设备固件要在被从存储器设备执行之前被激活。
示例40包括示例39的方法,其中,在使得输入/输出(I/O)设备能够访问存储器设备之前,激活设备固件。
示例41包括示例39至40中任一项的方法,其中,微控制器使计算系统静默,并且其中微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
示例42包括用于执行如示例23至29中任一项所述的方法的装置。
示例43包括用于执行如示例39至41中任一项所述的方法的装置。
实施例通过ACPI设备专用模块(DSM)机制向OS接口提供了清晰可见的平台固件。除了实现接口的构建块的存储器设备之外,平台固件和OS可支持这些接口和操作。平台固件(BIOS/UEFI)为OS接口提供本公开中所描述的构造。一些实施例使用DSM机制,但是也可以使用ACPI表和驱动器机制。通过转储ACPI表/DSM或专有驱动器接口,这些实施例可以清晰可见。此外,产品功能文档可以提供运行时存储器设备固件更新技术的使用。如果产品文献要求支持存储器设备的运行时升级,则可能正在使用一个或多个实施例。例如,存储器设备固件升级功能、是否需要静默、正在交换固件升级的估计时间等可以指示使用了本文所描述的技术。
关于热重置,实施例改变BIOS热启动流程以调用存储器设备固件激活。通常,在热启动时,不激活任何新固件。如果产品在热启动路径中(尤其是存储器设备的热启动路径)包括固件升级,则它可包括本文所描述的技术。系统产品功能集也可包括不重启系统即进行存储器设备固件升级(OS存储器丢失)。BIOS编写器指南(BWG)可包括用于了解基于热重置的存储器设备固件的激活的启动流程。此外,BMC接口详细信息可包括存储器设备固件激活信息。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、芯片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在一些附图中,信号导线用线表示。一些线可以是不同的以指示更具构成性的信号路径,一些线可具有数字标号以指示构成性信号路径的数目,和/或一些线可在一端或多端具有箭头以指示主要信息流向。然而,这不应以限制性方式来解释。相反,此类增加的细节可与一个或多个示例性实施例结合使用以促进更容易地理解电路。任何所表示的信号线,不管是否具有附加信息,实际上都可包括一个或多个信号,这一个或多个信号可在多个方向上行进,并且可用任何适合类型的信号方案来实现,例如利用差分对来实现的数字或模拟线路、光纤线路、和/或单端线路。
示例尺寸/模型/值/范围可能已经被给出,但是实施例不限于此。随着制造技术(例如,光刻法)随时间变得成熟,预料到能制造出更小尺寸的设备。另外,为了说明和讨论的简单并且为了不使实施例的某些方面模糊,到IC芯片和其他组件的公知的功率/接地连接可在附图内示出也可不示出。此外,各种布置可以框图形式示出以避免模糊各实施例,并且这也鉴于关于此类框图布置的实现的具体细节高度依赖于实现实施例的平台这一事实,即这些具体细节应当落在本领域内技术人员的学识范围内。在阐述具体细节(例如电路)以描述示例实施例的情况下,对本领域内技术人员应显而易见的是,没有这些具体细节或对这些具体细节作出变型也可实践各实施例。描述因此被视为是说明性的而不是限制性的。
术语“耦合的”在本文中可被用于表示所讨论的组件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。另外,术语“第一”、“第二”等在本文中可仅用于便于讨论,并且不带有特定时间的或按时间顺序的意义,除非另有陈述。
如在本申请和权利要求书中所使用的,由术语“中的一个或多个”联接的项列表可以意指所列项的任何组合。例如,短语“A、B或C中的一个或多个”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
本领域技术人员从前面的描述将领会,实施例的广泛技术能以各种形式来实现。因此,尽管已结合其特定示例描述了实施例,但实施例的真实范围不应当限于此,因为在研究附图、说明书和所附权利要求书之后,其他修改对于本领域技术人员将变得显而易见。
Claims (25)
1.一种性能增强的计算系统,包括:
网络控制器;
耦合至所述网络控制器的处理器;以及
耦合至所述处理器的存储器设备,所述存储器设备包括设备固件;以及
耦合至所述处理器的系统存储器,所述系统存储器包括一组可执行程序指令,所述指令在由所述处理器执行时,使所述处理器用于:
在系统固件与操作系统OS之间交换激活信息,其中,所述激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者,以及
基于所述激活信息来对所述设备固件进行运行时升级,其中,所述运行时升级绕过所述计算系统的重启。
2.如权利要求1所述的计算系统,其中,所述运行时升级是经由热重置进行的,所述状态信息指示最后的固件激活状态,所述激活状态信息指示固件激活装备状态,所述功能信息指示热重置功能,所述激活时间信息指示估计的固件激活时间,并且所述静默时间信息指示估计的静默时间。
3.如权利要求2所述的计算系统,进一步包括微控制器,其中,所述指令在被执行时进一步使所述处理器用于:
确定与所述计算系统相关联的存储器初始化代码是否支持热重置,
如果所述存储器初始化代码支持热重置,则通过基本输入输出系统BIOS激活所述设备固件,以及
如果所述存储器初始化代码不支持热重置,则调用所述微控制器来激活所述设备固件,其中,所述设备固件要在被从所述存储器设备执行之前被激活。
4.如权利要求3所述的计算系统,其中,在使得输入/输出I/O设备能够访问所述存储器设备之前,激活所述设备固件。
5.如权利要求3所述的计算系统,其中,所述微控制器使所述计算系统静默,并且其中所述微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
6.如权利要求1所述的计算系统,其中,所述OS准备以静默方式激活所述设备固件,并且其中一旦完成所述设备固件的激活,所述OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
7.如权利要求1至6中任一项所述的计算系统,其中,所述OS通过禁用直接存储器访问DMA、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出I/O访问,以实施所述设备固件的运行时激活。
8.一种半导体设备,包括:
一个或多个衬底;以及
逻辑,所述逻辑耦合至所述一个或多个衬底,其中,所述逻辑至少部分地在能配置的逻辑或固定功能硬件逻辑中的一者或多者中实现,所述逻辑耦合至所述一个或多个衬底以用于:
在系统固件与操作系统OS之间交换激活信息,其中,所述激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者;以及
基于所述激活信息来对设备固件进行运行时升级,其中,所述运行时升级绕过计算系统的重启。
9.如权利要求8所述的设备,其中,所述运行时升级是经由热重置进行的,所述状态信息指示最后的固件激活状态,所述激活状态信息指示固件激活装备状态,所述功能信息指示热重置功能,所述激活时间信息指示估计的固件激活时间,并且所述静默时间信息指示估计的静默时间。
10.如权利要求9所述的设备,其中,所述逻辑耦合至所述一个或多个衬底以用于:
确定与所述计算系统相关联的存储器初始化代码是否支持热重置;
如果所述存储器初始化代码支持热重置,则通过基本输入输出系统BIOS激活所述设备固件;以及
如果所述存储器初始化代码不支持热重置,则调用微控制器来激活所述设备固件,其中,在被从存储器设备执行之前,所述设备固件被激活。
11.如权利要求10所述的设备,其中,在使得输入/输出I/O设备能够访问所述存储器设备之前,激活所述设备固件。
12.如权利要求10所述的设备,其中,所述微控制器使所述计算系统静默,并且其中所述微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
13.如权利要求8所述的设备,其中,所述OS准备以静默方式激活所述设备固件,并且其中一旦完成所述设备固件的激活,所述OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
14.如权利要求8至13中任一项所述的设备,其中,所述OS通过禁用直接存储器访问DMA、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出I/O访问,以实施所述设备固件的运行时激活。
15.如权利要求8至13中任一项所述的设备,其中,所述逻辑耦合至所述一个或多个衬底,所述一个或多个衬底包括位于所述一个或多个衬底内的晶体管沟道区。
16.一种操作性能增强的计算系统的方法,所述方法包括:
在系统固件与操作系统OS之间交换激活信息,其中,所述激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者;以及
基于所述激活信息来对设备固件进行运行时升级,其中,所述运行时升级绕过计算系统的重启。
17.如权利要求16所述的方法,其中,所述运行时升级是经由热重置进行的,所述状态信息指示最后的固件激活状态,所述激活状态信息指示固件激活装备状态,所述功能信息指示热重置功能,所述激活时间信息指示估计的固件激活时间,并且所述静默时间信息指示估计的静默时间。
18.如权利要求17所述的方法,进一步包括:
确定与所述计算系统相关联的存储器初始化代码是否支持热重置;
如果所述存储器初始化代码支持热重置,则通过基本输入输出系统BIOS激活所述设备固件;以及
如果所述存储器初始化代码不支持热重置,则调用微控制器来激活所述设备固件,其中,所述设备固件要在被从存储器设备执行之前被激活。
19.如权利要求18所述的方法,其中,在使得输入/输出I/O设备能够访问所述存储器设备之前,激活所述设备固件。
20.如权利要求18所述的方法,其中,所述微控制器使所述计算系统静默,并且其中所述微控制器包括基板管理控制器、系统管理控制器、安全控制器或功率管理控制器中的一者或多者。
21.如权利要求17所述的方法,其中,所述OS准备以静默方式激活所述设备固件,并且其中一旦完成所述设备固件的激活,所述OS就重新评估计时器,使得OS时间和挂钟时间是同步的。
22.如权利要求16至21中任一项所述的方法,其中,所述OS通过禁用直接存储器访问DMA、暂停I/O设备或休眠I/O设备中的一者或多者来执行对主机存储器静默的输入/输出I/O访问,以实施所述设备固件的运行时激活。
23.一种半导体设备,包括:
用于在系统固件与操作系统OS之间交换激活信息的装置,其中,所述激活信息包括状态信息、激活状态信息、功能信息、激活时间信息或静默时间信息中的一者或多者;以及
用于基于所述激活信息来对设备固件进行运行时升级的装置,其中,所述运行时升级绕过计算系统的重启。
24.如权利要求23所述的设备,其中,所述运行时升级是经由热重置进行的,所述状态信息指示最后的固件激活状态,所述激活状态信息指示固件激活装备状态,所述功能信息指示热重置功能,所述激活时间信息指示估计的固件激活时间,并且所述静默时间信息指示估计的静默时间。
25.如权利要求24所述的设备,进一步包括:
用于确定与所述计算系统相关联的存储器初始化代码是否支持热重置的装置;
用于如果所述存储器初始化代码支持热重置,则通过基本输入输出系统BIOS来激活所述设备固件的装置;以及
用于如果所述存储器初始化代码不支持热重置,则调用微控制器来激活所述设备固件的装置,其中,所述设备固件要在被从存储器设备执行之前被激活。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063025587P | 2020-05-15 | 2020-05-15 | |
US63/025,587 | 2020-05-15 | ||
US16/995,934 US11893379B2 (en) | 2020-05-15 | 2020-08-18 | Interface and warm reset path for memory device firmware upgrades |
US16/995,934 | 2020-08-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672250A true CN113672250A (zh) | 2021-11-19 |
Family
ID=73854700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011519016.5A Pending CN113672250A (zh) | 2020-05-15 | 2020-12-21 | 用于存储器设备固件升级的接口和热重置路径 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11893379B2 (zh) |
EP (1) | EP3910469A1 (zh) |
CN (1) | CN113672250A (zh) |
DE (1) | DE102020133809A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794173A (zh) * | 2023-01-09 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 固态硬盘的在线升级方法、装置、电子设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113228189A (zh) * | 2021-03-30 | 2021-08-06 | 长江存储科技有限责任公司 | 具有嵌入式固件修复机制的存储器件 |
US11733909B2 (en) | 2021-06-21 | 2023-08-22 | Western Digital Technologies, Inc. | Secure-erase prediction for data storage devices |
US11900102B2 (en) * | 2021-06-21 | 2024-02-13 | Western Digital Technologies, Inc. | Data storage device firmware updates in composable infrastructure |
US20240111622A1 (en) * | 2022-09-30 | 2024-04-04 | Advanced Micro Devices, Inc | Apparatus, system, and method for detecting physical infrastructure constraint violations |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8555273B1 (en) * | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US20050223291A1 (en) * | 2004-03-24 | 2005-10-06 | Zimmer Vincent J | Methods and apparatus to provide an execution mode transition |
US8707290B2 (en) * | 2006-02-22 | 2014-04-22 | Dell Products L.P. | Firmware update in an information handling system employing redundant management modules |
US7500095B2 (en) * | 2006-03-15 | 2009-03-03 | Dell Products L.P. | Chipset-independent method for locally and remotely updating and configuring system BIOS |
US10430263B2 (en) * | 2016-02-01 | 2019-10-01 | Electro Industries/Gauge Tech | Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices |
US10146527B2 (en) * | 2016-10-12 | 2018-12-04 | Samsung Electronics Co., Ltd. | Method and apparatus for using BMC as proxy for NVME over fabrics device firmware upgrade |
US10346321B2 (en) | 2017-05-04 | 2019-07-09 | Dell Products L.P. | Method to trigger NVDIMM save from remote management interface |
US11379214B2 (en) * | 2019-03-29 | 2022-07-05 | Intel Corporation | Runtime firmware activation for memory devices |
-
2020
- 2020-08-18 US US16/995,934 patent/US11893379B2/en active Active
- 2020-12-15 EP EP20214390.5A patent/EP3910469A1/en active Pending
- 2020-12-16 DE DE102020133809.0A patent/DE102020133809A1/de active Pending
- 2020-12-21 CN CN202011519016.5A patent/CN113672250A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794173A (zh) * | 2023-01-09 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 固态硬盘的在线升级方法、装置、电子设备及存储介质 |
CN115794173B (zh) * | 2023-01-09 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 固态硬盘的在线升级方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210357204A1 (en) | 2021-11-18 |
DE102020133809A1 (de) | 2021-11-18 |
US11893379B2 (en) | 2024-02-06 |
EP3910469A1 (en) | 2021-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478135B (zh) | 计算机系统和用于重新引导计算机系统的方法 | |
EP3719637A2 (en) | Runtime firmware activation for memory devices | |
US11893379B2 (en) | Interface and warm reset path for memory device firmware upgrades | |
US9442876B2 (en) | System and method for providing network access for a processing node | |
US5819087A (en) | Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events | |
KR101365370B1 (ko) | 동적 시스템 재구성 | |
US11941391B2 (en) | Microcode(uCode) hot-upgrade method for bare metal cloud deployment | |
TWI390410B (zh) | 不須執行電力開啟自我測試之操作系統傳送及啟動 | |
US11972243B2 (en) | Memory device firmware update and activation without memory access quiescence | |
US20200326925A1 (en) | Memory device firmware update and activation with memory access quiescence | |
US20210357202A1 (en) | Firmware updating | |
US20210089296A1 (en) | Firmware boot task distribution to enable low latency boot performance | |
US11106457B1 (en) | Updating firmware runtime components | |
Golchin et al. | Jumpstart: Fast Critical Service Resumption for a Partitioning Hypervisor in Embedded Systems | |
US12008359B2 (en) | Update of boot code handlers | |
US20240160431A1 (en) | Technologies to update firmware and microcode | |
US20200257521A1 (en) | Update of boot code handlers | |
CN117075974A (zh) | 一种基于risc-v服务器cpu的新型edk2启动引导方法 | |
Strunk | An analysis of linux boot times | |
Zlatanov | Booting an Intel System Architecture |
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 |