CN105579954A - 平台非易失性存储区管理和平台配置 - Google Patents

平台非易失性存储区管理和平台配置 Download PDF

Info

Publication number
CN105579954A
CN105579954A CN201380079957.3A CN201380079957A CN105579954A CN 105579954 A CN105579954 A CN 105579954A CN 201380079957 A CN201380079957 A CN 201380079957A CN 105579954 A CN105579954 A CN 105579954A
Authority
CN
China
Prior art keywords
configuration
computing equipment
operating system
direct
information
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
Application number
CN201380079957.3A
Other languages
English (en)
Inventor
M.A.罗斯曼
V.J.兹姆梅
D.M.克罗格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105579954A publication Critical patent/CN105579954A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Abstract

用于提供服务到非易失性存储区的技术包括具有非易失性存储策略的计算设备,该非易失性存储策略定义在非易失性存储区中的保留空间的最小量。移动计算设备接收服务调用到非易失性存储区,基于非易失性存储策略确定在非易失性存储区中的可用空闲空间以及基于可用空闲空间响应于服务调用。用于平台配置的技术包括具有固件环境和操作系统的计算设备。固件环境确定关于不可由操作系统访问的配置设置的信息,并将信息导出到操作系统。操作系统基于导出的信息确定新的配置设置,并可以在运行时配置计算设备。操作系统可以在引导期间将配置指令安全地传递到固件环境用于配置。描述和要求保护其他实施例。

Description

平台非易失性存储区管理和平台配置
背景技术
计算设备经常根据统一可扩展固件接口(“UEFI”)规范执行引导过程,该规范具有由统一EFI论坛出版的若干版本。UEFI规范指定计算设备的固件和计算设备的操作系统之间的接口。UEFI规范指定针对在预操作系统环境中执行的固件驱动程序和应用程序的标准模型。除了执行传统引导和初始化任务以外,这样的驱动程序和应用程序可以执行其他任务,诸如诊断、维护或管理任务。
现代计算机系统允许引导和运行时应用程序,诸如操作系统驱动程序,以在平台非易失性(“NV”)存储器存储区中存储变量。例如,UEFI规范定义若干变量函数,其允许对NV存储区的访问。然而,NV存储区通常是必须由平台固件以及固件配置变量共享的小量的存储器。固件在执行引导操作时通常也需要临时的NV存储区中的小量的空间。当试图在其期间NV存储区被完全填满的时间处引导时,固件可能崩溃、中止、无法引导或以其他方式使平台不可用。不可用平台的该条件有时被称为“变砖(bricked)”—即平台与砖一样有用,尽管通常有点不太耐用。
此外,包括处理器、芯片组以及其他支持特征的现代计算机平台具有许多配置设置和选项。通常,设备制造商建立平台的基本配置,并且平台固件在引导时配置平台。一些配置设置例如通过预引导基本输入/输出系统(“BIOS”)接口可用于用户,或可用于操作系统;然而,许多配置设置不可用于用户或操作系统。对配置设置的改变可能需要例如通过重刷平台NV存储区来更新平台固件。配置错误可以极大地降低平台的性能。
附图说明
本文中描述的概念经由示例并不经由限制被图示在附图中。为了说明的简单和清楚,附图中图示的元件不一定被成比例绘制。在认为适当的情况下,参考标记已在图之间进行重复,以指示对应或类似的元件。
图1是针对平台非易失性存储区管理和平台配置的系统的至少一个实施例的简化框图;
图2是图1的系统的计算设备的环境的至少一个实施例的简化框图;
图3是图1的计算设备的另一环境的至少一个实施例的简化框图;
图4是可以由图1和2的计算设备执行的根据UEFI规范的引导过程的至少一个实施例的简化示意图;
图5A-5D是可以由图1和2的计算设备执行的用于平台非易失性存储区管理的方法的至少一个实施例的简化流程图;
图6A-6B是可以由图1和2的计算设备执行的用于平台配置的方法的至少一个实施例的简化流程图;以及
图7是可以由图1的系统的管理服务器执行的用于平台配置的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念容许各种修改和可替换形式,但是其特定实施例已经由示例被示出在绘图中并且将在本文中被详细描述。然而,应该理解的是,没有意图限制本公开的概念到公开的特定形式,但与此相反,意图是覆盖与本公开和所附权利要求一致的所有修改、等价物和替换物。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示描述的实施例可以包括特定的特征、结构或特性,但每个实施例可以或可以不一定包括该特定特征、结构或特性。此外,这样的短语不一定指代相同实施例。此外,当特定的特征、结构或特性结合实施例进行描述时,主张的是,结合其他实施例实现这样的特征、结构或特性是在本领域技术人员的知识内,无论是否被明确描述。此外,应该领会的是,被包括在形式为“至少一个A、B和C”的列表中的项目可以表示(A);(B);(C):(A和B);(B和C);或(A、B和C)。类似地,以“A、B和C中的至少一个”的形式列出的项目可以表示(A);(B);(C):(A和B);(B和C);或(A、B和C)。
在一些情况下,可以在硬件、固件、软件或其任何组合中实施公开的实施例。公开的实施例也可以被实施为由临时性或非临时性机器可读(例如,计算机可读)存储介质承载或存储在该存储介质上的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以被体现为任何存储设备、机构或其他物理结构用于以由机器(例如,易失性或非易失性存储器、媒体光盘或其他媒体设备)可读的形式来存储或传输信息。
在绘图中,一些结构或方法特征可能以特定布置和/或排序示出。然而,应该领会的是,这样的特定布置和/或排序可能不是需要的。而是,在一些实施例中,这样的特征可以以与在说明性附图中示出的相比不同的方式和/或顺序来布置。此外,在特定附图中包括结构或方法特征不意在暗示这样的特征在所有实施例中是需要的,并且在一些实施例中可能不被包括或可能与其他特征组合。
现在参考图1,在一个实施例中,用于非易失性存储区管理和平台配置的系统100包括能够通过网络106通信的计算设备102。在一些实施例中,系统100包括与计算设备102通信的管理服务器104。在使用中,如下文描述的,计算设备102根据一个或多个平台策略管理对平台非易失性(“NV”)存储器存储区的访问。计算设备102也导出平台配置设置到运行时操作系统。运行时操作系统可以确定计算设备102未被最优配置,并可以生成配置指令,以改进计算设备102的配置。配置指令可以在运行时被执行或可以被安全地传送到要在重新引导时执行的平台固件。在一些实施例中,使配置设置可用于管理服务器104,其可以经由计算设备102的带外可管理性引擎传输配置指令到计算设备102。公开的技术允许由受信任和不受信任的应用程序继续使用平台NV存储区,同时提高系统的安全性和稳定性。另外,公开的技术允许在不更换或重刷平台固件的情况下在部署后优化计算设备102的配置。
计算设备102可以被体现为用于执行本文中描述的功能的任何类型的设备。例如,计算设备102可以被体现为(没有限制)智能电话、平板计算机、膝上型计算机、笔记本计算机、移动计算设备、蜂窝电话、手机、消息传递设备、车辆远程信息处理设备、服务器计算机、工作站、分布式计算系统、多处理器系统、消费电子设备和/或配置成执行本文中描述的功能的任何其他计算设备。如图1中示出的,说明性计算设备102包括处理器120、输入/输出子系统122、存储器124和数据存储设备126。当然,在其他实施例中,计算设备102可以包括其他或附加的部件,诸如通常在移动和/或固定的计算机(例如,各种输入/输出设备)中找到那些部件。此外,在一些实施例中,说明性部件中的一个或多个可以被并入另一部件中,或以其他方式形成另一部件的一部分。例如,存储器124或其部分在一些实施例中可以被并入处理器120中。
处理器120可以被体现为能够执行本文中描述的功能的任何类型的处理器。例如,处理器120可以被体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器,或其他处理器或处理/控制电路。类似地,存储器124可以被体现为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器124可以存储在计算设备102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器124经由I/O子系统122通信地耦合到处理器120,所述I/O子系统122可以被体现为促进与计算设备102的处理器120、存储器124和其他部件的输入/输出操作的电路和/或部件。例如,I/O子系统122可以被体现为或以其他方式包括:存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他部件和子系统。在一些实施例中,I/O子系统122可以形成片上系统(SoC)的一部分,并且连同计算设备102的处理器120、存储器124和其他部件一起被并入在单个集成电路芯片上。
数据存储设备126可以被体现为配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如,存储器设备和电路、存储器卡、硬磁盘驱动器、固态驱动器或其他数据存储设备。数据存储设备126可以包括存储用于计算设备102的数据和固件代码的系统分区。数据存储设备126也可以包括存储用于计算设备102的操作系统的数据文件和可执行文件的操作系统分区。
计算设备102进一步包括非易失性(“NV”)存储区128。当计算设备102掉电或与电源断开时,NV存储区128可以被体现为配置用于数据的永久存储的任何设备。在说明性实施例中,NV存储区128是闪速存储器芯片。在其他实施例中,NV存储区128可以被体现为与备用电池或其他非易失性存储器耦合的小量的互补型金属氧化物半导体(“CMOS”)存储器。NV存储区128可以用于存储用于计算设备102的平台固件,以及固件配置变量,诸如配置设置、引导目标和跨重新引导应该存留的其他信息。NV存储区28与数据存储设备126相比通常具有相对小的存储容量,但在初始引导时可用于计算设备102。在一些实施例中,NV存储区128可以被并入到计算设备102的一个或多个其他部件中,例如到I/O子系统122中。
计算设备102进一步包括显示器130。显示器130可以被体现为能够显示数字信息的任何类型的显示器,诸如液晶显示器(LCD)、发光二极管(LED)、等离子显示器、阴极射线管(CRT)或其他类型的显示设备。在一些实施例中,显示器130可以耦合到触摸屏,以允许用户与计算设备102交互。
计算设备102进一步包括通信电路132,所述通信电路132可以被体现为任何通信电路、设备或其集合,其能够实现在计算设备102、管理服务器104和/或其他远程设备之间的通信。通信电路132可以配置成使用任何一个或多个通信技术(例如,无线或有线通信)和关联的协议(例如,以太网、蓝牙®、Wi-Fi®、WiMAX等)来实现这样的通信。通信电路132可以被体现为网络适配器,包括无线网络适配器。
说明性计算设备102也包括可管理性引擎134。可管理性引擎134被体现为提供对计算设备102的远程配置、控制或管理的设备。说明性可管理性引擎134包括带外处理器136。带外处理器136与计算设备102的主处理器120分离且不同。照此,可管理性引擎134能够独立于计算设备102的其余部分的状态进行操作。即,可管理性引擎134能够操作而不管处理器120的操作状态,包括当计算设备102断电时,当计算设备102执行预引导固件环境时,当计算设备102的操作系统活动时,和当操作系统崩溃或以其他方式为非活动时。可管理性引擎134也能够独立于计算设备102的状态使用通信电路132进行通信,也被称为“带外”通信。在一些实施例中,除了经由通信电路132连接以外或替代经由通信电路132连接,可管理性引擎134可以包括用于这样的带外通信的专用网络适配器。可管理性引擎134也能够带外访问NV存储区128;即,可管理性引擎134能够独立于计算设备102的状态访问NV存储区128。可管理性引擎134也可能能够访问不可由计算设备102的其他部件访问的NV存储区128内的安全存储区域。在一些实施例中,可管理性引擎134可以被并入到I/O子系统122中或以其他方式形成I/O子系统122的一部分。
在包括管理服务器104的系统100的实施例中,管理服务器104配置成从计算设备102接收导出的配置设置并且传输配置指令到计算设备102。管理服务器104可以直接与可管理性引擎134通信,可管理性引擎134可以作为在网络106上的单独的主机出现。管理服务器104可以被体现为能够执行本文中描述的功能的任何类型的数据服务器或类似计算设备。照此,管理服务器104可以包括类似于计算设备102的部件和特征,诸如处理器、I/O子系统、存储器、数据存储、通信电路和各种外围设备,其为了使本描述清楚不被图示在图1中。此外,管理服务器104可以被体现为单个服务器计算设备或服务器和关联的设备的集合。例如,在一些实施例中,管理服务器104被体现为用于执行本文中描述的功能的云服务。在这样的实施例中,管理服务器104可以被体现为由跨网络106分布和在公共或私有云中操作的多个计算设备形成的“虚拟服务器”。因此,尽管管理服务器104被图示在图1中并在下文中被描述为体现为单个服务器计算设备,但是应该领会的是,管理服务器104可以被体现为一起协作以促进下文描述的功能的多个设备。
现在参考图2,在一些实施例中,计算设备102建立操作期间的环境200。说明性环境200包括固件环境202和操作系统204。虽然说明性实施例200包括单个操作系统204,但是在其他实施例中环境200可以包括本机地或以虚拟化方式执行的多于一个操作系统204。环境200的各种模块可以被体现为硬件、固件、软件或其组合。此外,在一些实施例中,固件环境202和/或操作系统204的模块中的一些或所有可以与其他模块或软件/固件结构集成,或形成其他模块或软件/固件结构的一部分。
固件环境202包括NV存储区访问模块206、许多NV存储策略210和许多(一个或多个)固件驱动程序/(一个或多个)应用程序212。NV存储区访问模块206配置成根据NV存储策略210提供对NV存储区128的受控访问服务。如下文描述的,NV存储区访问模块206可以保留NV存储区128的部分,从而防止流氓驱动程序和/或应用程序完全填充NV存储区128。在一些实施例中,NV存储区访问模块206可以通过压缩NV存储区128中存储的数据有效地增加NV存储区128的大小。NV存储区访问模块206可以提供对被包括在固件环境202中的模块以及操作系统204两者的访问服务。NV存储区访问模块206可以实施公知的接口,包括但不限于UEFI规范中定义的变量服务。在一些实施例中,那些功能可以由子模块例如由压缩模块208执行。
NV存储策略210包括定义对NV存储区128的允许访问的一组规则。NV存储策略210中的一个或多个可以定义要保留在NV存储区128内的存储空间的最小量。其他策略可以定义是否启用数据压缩。NV存储策略210可以取决于调用访问服务的实体的身份。例如,不同NV存储策略210可能应用于受信任的固件模块、操作系统204或操作系统204执行的不受信任的应用程序。NV存储策略210是平台特定的策略;即,NV存储策略210特定于计算设备102。NV存储策略210可以例如由计算设备102的制造商生成,并且可以被存储在NV存储区128内。
(一个或多个)固件驱动程序/(一个或多个)应用程序212在固件环境202内执行各种任务。例如,(一个或多个)固件驱动程序/(一个或多个)应用程序212可以包括硬件驱动程序、系统配置实体、引导加载程序和其他固件实体。(一个或多个)固件驱动程序/(一个或多个)应用程序212可以使用NV存储区访问模块206来访问NV存储区128。此外,操作系统204可以执行一个或多个应用程序214。操作系统204和/或(一个或多个)应用程序214可以类似地使用NV存储区访问模块206访问NV存储区128。
现在参考图3,在另一实施例中,计算设备102建立操作期间的环境300。说明性环境300包括固件环境302、操作系统204、平台配置设置314和配置改变策略316。虽然说明性实施例300包括单个操作系统204,但是在其他实施例中环境300可以包括本机地或以虚拟化方式执行的多于一个操作系统204。环境300的各种模块可以被体现为硬件、固件、软件或其组合。此外,在一些实施例中,固件环境302和/或操作系统204的模块中的一些或所有可以与其他模块或软件/固件结构集成,或形成其他模块或软件/固件结构的一部分。
固件环境302包括配置模块304和安全通信模块308。配置模块304被配置成读取、执行或以其他方式应用配置指令来更新计算设备102的平台配置。如以下描述的,可以通过修改平台配置设置314配置计算设备102。平台配置设置314可以被体现为特定的模型特定寄存器、I/O寄存器、存储器地址或其他数据的值,通过所述其他数据可以使用配置的任何其他方法来配置计算设备102。配置模块304也配置成确定计算设备102的平台配置设置314,并且导出将由操作系统204可访问的那些当前平台配置设置314。如以下描述的,可以由操作系统204生成配置指令或使用可管理性引擎134从远程管理服务器104接收所述配置指令。在一些实施例中,那些功能可以由子模块例如由导出模块306执行。
安全通信模块308配置成接收和检验配置指令。配置指令可以通过检验已被应用于配置指令的数字签名来检验。安全通信模块308可以从操作系统204接收作为在存储器中的更新封装体(capsule)传递的配置指令。此外或者可替换地,安全通信模块308可以通过与可管理性引擎134执行握手协议来接收配置指令,可管理性引擎134反过来可能已经从管理服务器104接收到所述配置指令。
操作系统204包括配置代理模块310和安全通信模块312,并且可以包括各种其他服务、驱动程序和应用程序(未示出)。配置代理模块310配置成从固件环境302读取导出的平台配置设置314,并且确定是否基于导出的平台配置设置314而次优地配置计算设备102。如果次优,则配置代理模块310配置成确定针对计算设备102的新的配置设置。配置代理模块310可以引用配置改变策略316来确定新的配置设置。配置代理模块310可以在运行时应用新的配置设置(如果可能的话),或可以生成与固件环境302安全地通信的配置指令。配置代理模块310可以重置计算设备102来应用配置设置。
安全通信模块312配置成传输检验的配置指令到固件环境302。安全通信模块312可以用与计算设备102、操作系统204、计算设备102的制造商或任何其他受信任方相关联的签名对配置指令进行数字签名。如以上描述的,安全通信模块312可以通过在更新封装体中封装配置指令来传输配置指令到固件环境302。此外或者可替换地,在一些实施例中,安全通信模块312可以传输导出的设备设置到外部管理服务器104。
现在参考图4,在使用中,计算设备102可以根据UEFI规范执行引导过程400。在块402中,计算设备102初始化平台硬件。例如,计算设备102可以初始化处理固件环境202,302所需的特定部件,例如存储器124和I/O子系统122。
在块404中,计算设备102加载和启动用于一个或多个固件驱动程序406或固件应用程序408的固件图像。如以上描述的,固件驱动程序406和应用程序408是可以被存储在数据存储设备126的系统分区中的二进制图像。要加载的特定驱动程序和应用程序是平台相关的,并且可以被列举在计算设备102的全局变量中,例如,在计算设备102的NV存储区128中。计算设备102可以列举要加载的固件驱动程序406和应用程序408,并确定所需的引导顺序。引导顺序可以基于固件驱动程序406和应用程序408之间的相关性。
固件驱动程序406和应用程序408实质上相同,除了应用程序408通常在从其入口点返回后从存储器124被卸载之外,而驱动程序406通常驻留在存储器124中除非它们返回有错误代码。固件驱动程序406和应用程序408可以初始化或者控制计算设备102的硬件。固件驱动程序406或应用程序408也可以安装固件协议接口,其定义函数调用接口并且在被安装之后允许其他固件图像调用提供的服务。例如,一个或多个固件驱动程序406或应用程序408可以安装允许客户端实体得到、设置和查询存储在NV存储区128中的变量信息的变量服务。
在块410中,计算设备102确定并加载引导目标412。引导目标412是固件应用程序,其将通过计算设备102加载并启动。引导目标通常是操作系统加载程序,尽管引导目标可以包括诊断、维护或管理应用程序。选择的特定引导目标412可能被指定在计算设备102的全局变量中,例如被存储在NV存储区128中。计算设备102的全局变量可以指定若干引导目标412,包括引导目标412的相对排序。在一些实施例中,可由计算设备102的用户通过呈现在计算设备102上的菜单或其他装置来选择引导目标412。在一些实施例中,计算设备102可以包括默认引导目标412或用于选择引导目标412的默认规则。
在引导目标412中,计算设备102把控制移交给操作系统加载程序414。这样的操作系统加载程序414可能不被存储在数据存储设备126的系统分区中。作为移交的一部分,引导目标412可能推进到块416,以例如通过调用UEFI函数ExitBootServices()来终止引导服务。因此,如果这样的引导目标412是成功的,则引导过程400完成,并且操作系统204在计算设备102的控制下。仅仅被特别指定为运行时能够(runtime-capable)的固件服务在控制已被传递到操作系统204后保持可用。如果引导服务不被引导目标412终止,例如如果操作系统加载程序414无法加载操作系统204,则计算设备102可以尝试加载另一引导目标412。
现在参考图5A,在使用中,计算设备102可以执行用于向NV存储区128提供服务的方法500。方法500以块502开始,在块502中计算设备102接收服务调用到NV存储区128。调用可以用于访问服务或与NV存储区128相关的其他服务。服务调用可以在预引导期间通过固件环境202做出,或可以在运行时通过操作系统204、驱动程序或应用程序软件做出。服务调用可以根据标准平台接口,诸如“C”语言调用约定来执行。可以根据定义的接口,诸如UEFI标准来请求特定服务。
在块504中,计算设备102确定调用者是否已请求“得到”NV存储区变量。该确定可以基于用于调用服务的接口;例如,计算设备102可以确定是否已调用UEFI函数GetVariable()。如果这样的话,则方法500分支到块512,以下结合图5B进行描述。如果不是的话,方法500推进到块506。
在块506中,计算设备102确定调用者是否已请求“设置”NV存储区变量。该确定可以基于用于调用服务的接口;例如,计算设备102可以确定是否已调用UEFI函数SetVariable()。如果这样的话,则方法500分支到块520,以下结合图5C进行描述。如果不是的话,方法500推进到块508。
在508块中,计算设备102确定是否调用者已请求针对NV存储区变量“查询”变量信息。该确定可以基于用于调用服务的接口;例如,计算设备102可以确定是否已调用UEFI函数QueryVariableInfo()。如果这样的话,则方法500分支到块542,以下结合图5D进行描述。如果不是的话,方法500推进到块510。在块510中,计算设备102指示错误给调用者,从而完成方法500。例如,计算设备102可以返回错误代码,其指示没有支持的NV存储区服务已被请求。当然,在一些实施例中,计算设备102可以处理不被示出在图5A中的附加服务。虽然已经关于三个特定服务调用图示和描述图5A,但是应该领会的是,计算设备102可以配置成以类似的方式处理针对NV存储区128的其他或附加服务调用。
如以上讨论的,如果计算设备102确定已在504块中请求“得到”服务,则方法500推进到图5B的块512。在512块中,计算设备102确定是否启用NV存储区压缩。在一些实施例中,可以在制造的时间处启用或禁用NV存储区压缩。在其他实施例中,可以使用计算设备102的一个或多个平台配置寄存器、固件变量或其他配置机制来配置NV存储区压缩。如果启用NV存储区压缩,则方法500分支到块518,如下所述。如果禁用NV存储区压缩,则方法500分支到块514。
在块514中,计算设备102从NV存储区128针对请求变量检索原始数据。在块516中,计算设备102返回检索到的数据到调用者。例如,计算设备102可以为检索到的数据分配存储器缓冲区,并且将C风格指针返回到存储器缓冲区。计算设备102可以根据定义明确的接口(诸如,UEFI规范)返回检索到的数据。
参考回到块512,如果启用NV存储区压缩,则方法500分支到块518,在块518中计算设备102从NV存储区128解压缩数据并且针对请求的变量检索数据。计算设备102可以使用任何合适压缩算法来压缩NV存储区128中的变量数据。例如,计算设备102可以使用Lempel-Ziv-Markov算法(“LZMA”)压缩和解压缩变量数据。在解压缩变量数据后,计算设备102在516块中返回解压缩的数据到调用者。变量压缩是对调用者透明的;例如,计算设备102将解压缩的变量数据存储在存储器缓冲区中,并且返回指针到该缓冲区。
如以上讨论的,如果计算设备102确定已在块506中请求“设置”服务,则方法500推进到图5C的块520。在520块中,计算设备102确定是否启用NV存储区压缩。如关于图5B的块512描述的,NV存储区压缩可以在制造的时间处被启用或禁用,或可以使用计算设备102的一个或多个平台配置寄存器、固件变量或其他配置机制来配置。如果启用NV存储区压缩,则方法500分支到块534,如下所述。如果禁用NV存储区压缩,则方法500分支到块522。
在块522中,计算设备102基于适用的NV存储策略210确定NV存储区128中的可用空闲空间。如以上描述的,每个NV存储策略210可以指定可以不被分配给变量数据的在NV存储区128中的保留的存储器的最小量。例如,NV存储策略210可以从NV存储区128内的128千字节总存储中保留8千字节。为了确定可用空闲空间,计算设备102确定NV存储区128的原始未分配空间,并且减去保留空间的量。例如,给定NV存储区128包括128千字节的存储和96千字节的存储器被分配,NV存储区128将包括32千[s1] 的原始未分配空间。鉴于保留段8千字节,可用空闲空间将是24千字节。
在一些实施例中,计算设备102可以在524块中基于调用者的身份确定适用的NV存储策略210。例如,由计算设备102的制造商提供的受信任的调用者可以被允许访问附加的可用空闲空间;即,可以为受信任的调用者保留较少的NV存储区128。计算设备102可以使用任何适合方法确定调用者的身份。在一些实施例中,计算设备102可以通过检查系统堆栈确定指向调用者的存储器位置的返回地址来确定调用者的身份。例如,计算设备102可以基于调用地址确定调用者是受信任的固件驱动程序或应用程序、操作系统204、操作系统204的应用程序或驱动程序还是其他实体。
在块526中,计算设备102确定是否足够的空间存在于NV存储区128中以存储请求的变量。计算设备102可以将由调用者传递的数据量与在522块中确定的可用空闲空间进行比较。如果足够空间不可用,则方法500分支到块528,在块528中计算设备102给调用者指示错误。计算设备102可以返回错误代码、发出异常、发送信号或执行另一平台适当的方法,以指示错误。如果足够空间可用在NV存储区128中,则方法500推进到块530。
在块530中,计算设备102在NV存储区128中存储由调用者提供的原始数据。计算设备102将原始数据与指定变量相关联,以允许所述数据以后被检索。在存储原始数据之后,方法500推进到块532,在块532中方法500返回成功状态代码给调用者。
参考回到块520,如果启用NV存储区压缩,则方法500分支到块534。在534块中,计算设备102基于适用的NV存储策略210和预测压缩比确定NV存储区128中的估计可用空闲空间。预测压缩比可以被预定,或可以基于先前存储在NV存储区128中的变量数据的压缩比。计算设备102可以确定NV存储区128中的原始未分配空间量并应用预测压缩比来确定预测逻辑未分配空间。计算设备102可以从逻辑未分配空间减去由NV存储策略210指定的保留空间量,以确定估计可用空闲空间。例如,假定NV存储区128包括32千字节的原始未分配空间。计算设备102可以基于预测压缩比估计更大逻辑未分配空间,例如64千字节。给定如由NV存储策略210指定的保留段8千字节,估计可用空闲空间在该示例中将是56千字节。
在一些实施例中,在块536中计算设备102可以基于调用者的身份确定适用的NV存储策略210。例如,由计算设备102的制造商提供的受信任的调用者可以被允许访问附加的可用空闲空间;即,可以为受信任的调用者保留较少的NV存储区128。如以上描述的,计算设备102可以使用任何适合方法诸如通过检查系统堆栈确定指向调用者的存储器位置的返回地址来确定调用者的身份。例如,计算设备102可以基于调用地址确定调用者是受信任的固件驱动程序或应用程序、操作系统204、操作系统204的应用程序或驱动程序还是其他实体。
在块538中,计算设备102确定是否足够空间存在于NV存储区128中以存储请求的变量。计算设备102可以将由调用者传递的数据量与在522块中确定的估计可用空闲空间进行比较。在其他实施例中,计算设备102可以执行不同算法来做出该确定,例如,将请求的变量数据压缩和确定是否在NV存储区128中的足够原始空间可用于压缩的数据。如果足够空间不可用,则方法500分支到块528,在块528中计算设备102给调用者指示错误。计算设备102可以返回错误代码、发出异常、发送信号或执行另一平台适当的方法,以指示错误。如果足够空间可用在NV存储区128中,则方法500推进到块540。
在540块中,计算设备102压缩由调用者提供的变量数据并且在NV存储区128中存储压缩的数据。计算设备102将压缩的数据与指定变量相关联,以允许数据以后被检索。计算设备102也可以基于针对变量数据实现的实际压缩比更新预测压缩比,以改进空闲空间估计的精度。在存储压缩的数据之后,方法500推进到块532,在块532中方法500返回成功状态代码给调用者。
如以上讨论的,如果计算设备102确定已在块506中请求“查询”服务,则方法500推进到图5D的块542。在块542中,计算设备102确定是否启用NV存储区压缩。如以上描述的,NV存储区压缩可以在制造的时间处被启用或禁用,或可以使用计算设备102的一个或多个平台配置寄存器、固件变量或其他配置机制来配置。如果启用NV存储区压缩,则方法500分支到块552,如下所述。如果禁用NV存储区压缩,则方法500分支到块544。
在块544中,计算设备102基于适用的NV存储策略210确定NV存储区128中的可用空闲空间。如以上描述的,NV存储策略210可以指定可以不被分配用于变量数据的在NV存储区128中的保留存储器的最小量。例如,NV存储策略210可以从NV存储区128内的128千字节总存储中保留8千字节。为了确定可用空闲空间,计算设备102确定NV存储区128的原始未分配空间,并且减去保留空间量。在一些实施例中,在块546中计算设备102可以基于调用者的身份确定适用的NV存储策略210。例如,由计算设备102的制造商提供的受信任的调用者可以被允许访问附加的可用空闲空间;即,可以为受信任的调用者保留较少的NV存储区128。计算设备102可以使用任何适合方法诸如通过检查系统堆栈确定指向调用者的存储器位置的返回地址来确定调用者的身份。例如,计算设备102可以基于调用地址确定调用者是受信任的固件驱动程序或应用程序、操作系统204、操作系统204的应用程序或驱动程序还是其他实体。
在块548中,在一些实施例中计算设备102可以基于NV存储策略210执行另一请求查询。例如,计算设备102可以确定存储在NV存储区128中的个体变量的最大大小。在执行请求查询之后,方法500推进到块550,在块550中方法500返回查询信息(包括可用空闲空间)给调用者。
参考回到块542,如果启用了NV存储区压缩,则方法500分支到块552。在块552中,计算设备102基于适用的NV存储策略210和预测压缩比确定NV存储区128中的估计可用空闲空间。如以上描述的,计算设备102可以确定NV存储区128中的原始未分配空间量,并且应用预测压缩比来确定预测逻辑未分配空间。计算设备102可以从逻辑未分配空间减去由NV存储策略210指定的保留空间量,以确定估计可用空闲空间。
在一些实施例中,在块554中计算设备102可以基于调用者的身份确定适用的NV存储策略210。例如,由计算设备102的制造商提供的受信任的调用者可以被允许访问附加的可用空闲空间;即,可以为受信任的调用者保留较少的NV存储区128。如以上描述的,计算设备102可以使用任何适合方法诸如通过检查系统堆栈确定指向调用者的存储器位置的返回地址来确定调用者的身份。例如,计算设备102可以基于调用地址确定调用者是受信任的固件驱动程序或应用程序、操作系统204、操作系统204的应用程序或驱动程序还是其他实体。
在块556中,在一些实施例中,计算设备102可以基于NV存储策略210和预测压缩比执行另一请求查询。例如,计算设备102可以确定存储在NV存储区128中的个体变量的最大大小。在执行请求的查询之后,方法500推进到块550,在块550中方法500返回查询信息(包括可用空闲空间)给调用者。
现在参考图6A,在使用中,除了上文描述的方法500以外或者代替方法500,计算设备102可以执行用于平台配置的方法600。方法600以块602开始,在块602中计算设备102从固件环境302初始化平台硬件。例如,计算设备102可以初始化关键硬件部件诸如处理器120、存储器124和/或I/O子系统122。当计算设备102首次通电时或当重新引导计算设备102时,该初始化在引导时间处执行。在块604中,计算设备102配置附属设备和数据。配置的设备可以包括计算设备102的外围或可选的部件。计算设备102可以查询各种互连总线或设备接口来确定附属设备和配置数据。计算设备102可以读取各种寄存器、存储器地址或以其他方式填充平台配置设置314。
在块606中,计算设备102确定一个或多个配置指令是否可用于固件环境302。如以下描述的,配置指令可以通过操作系统204的代理或通过可管理性引擎134被创建和被传递到固件环境302。如果没有配置指令可用,则方法600向前分支到块620,如下所述。如果配置指令可用,则方法600推进到块608。
在块608中,计算设备102检索更新平台配置设置314的一个或多个传入请求。更新平台设置的请求可以识别特定平台配置设置以及平台配置设置的请求的新值。例如,更新设置的请求可以指定特定的模型特定寄存器、I/O寄存器或存储器地址。此外,请求可以指定关联的寄存器或地址内的特定位字段连同该位字段的请求的新值。新的平台配置设置可以启用、禁用或以其他方式配置计算设备102的平台特定的特征,例如处理器120的硬件预取器或针对存储器124的存储器交错设置。
可以以对计算设备102的固件环境302可访问的任何方式存储或传递传入请求。在一些实施例中,在块610中计算设备检索已由计算设备102在运行时创建的更新封装体。如以下描述的,计算设备102的操作系统204可以以受保护模式操作,从而使用虚拟或线性寻址模式在存储器中寻址数据。另一方面,固件环境302可以以真实模式操作,从而使用物理地址寻址存储器。为了将存储器中的数据从操作系统204传递到固件环境302,可以生成更新封装体,其包括包含传递的数据的虚拟和物理存储器地址之间的映射。例如,操作系统204可以调用UpdateCapsule() UEFI函数将数据传递到固件环境302用于处理。固件环境302可以通过查询用于引用封装体的UEFI系统表来检索和处理更新封装体。在一些实施例中,在612块中计算设备102可以与可管理性引擎134执行握手协议以检索传入请求。计算设备102可以使用定义明确的网络端口与可管理性引擎134连接。
在块614中,计算设备102验证传入请求。计算设备102可以执行任何验证程序,该任何验证程序能够检验传入请求源和/或传入请求尚未被篡改。例如,计算设备102可以验证与传入请求相关联的一个或多个数字签名。在块616中,计算设备102确定是否已成功验证传入请求。如果不是的话,方法600向前分支到块620,如下所述。如果成功验证的话,方法600推进到块618。
在块618中,计算设备102基于传入请求更新平台配置设置314。计算设备102可以设置用于模型特定寄存器、I/O寄存器、存储器地址的适当值,或执行如由传入请求指定的其他配置操作。
在块620中,计算设备102导出当前平台配置设置314到引导目标。导出当前设置允许操作系统204在引导完成后并且在引导服务已被终止后访问平台配置设置314。这样的配置设置在引导后可能对于操作系统204不可访问,除非由固件环境302导出。为了执行导出,计算设备102可以使信息可用在UEFI系统表中、在非易失性平台变量中、在数据存储设备126中或使用可用于操作系统204的任何其他通信方法。
在块622中,计算设备102发起操作系统204。计算设备102可以从依照UEFI规范的许多可用引导目标来选择适当引导目标。某些平台配置设置314在加载操作系统204之后可能变得锁定、只读、或以其他方式不可配置。在加载操作系统204之后,方法600推进到块624,如图6B中图示的。
在块624中,计算设备102基于从固件环境302导出的平台配置设置314来确定计算设备102的平台配置是否是次优的。换言之,计算设备102确定是否可以改变计算设备102的配置设置,以改进计算设备102的性能。为了确定计算设备102是否被次优配置,计算设备102可以将配置设置与一组已知的配置设置进行比较。此外或者可替换地,在一些实施例中,计算设备102可以在块626中将操作特性与预定义阈值进行比较。计算设备102可以在操作期间通过测量或以其他方式剖析平台性能来确定操作特性。由计算设备102使用的(一个或多个)特定操作特性可以被体现为计算设备102的(一个或多个)任何操作特性,其指示计算设备102的操作性能。例如,计算设备102可以在操作期间测量存储器延迟和/或带宽。平台配置是否次优的确定可以由操作系统204中常驻的代理执行,例如由操作系统驱动程序执行。
在一些实施例中,在块628中,计算设备102传输导出的平台配置设置314到管理服务器104。在这样的实施例中,管理服务器104可以做出是否次优配置平台的确定,如以下结合图7描述的那样。计算设备102可以使用由处理器120执行的操作系统代理或应用程序传输配置设置。此外或者可替换地,在一些实施例中,可以使用可管理性引擎134的带外网络通信能力来传输配置设置。即,可以通过可管理性引擎134传输配置设置,而与任何操作系统204或由处理器120执行的应用程序的状态无关。
在块630中,计算设备102确定平台配置是否是次优。如果不是的话(即,如果平台配置是最佳的或计算设备102尚未识别配置为次优),则方法600循环回到块624以继续监控平台配置。以该方式,计算设备102可以适配于改变条件,并确保计算设备102保持最佳配置。如果计算设备102已被确定为次优,则方法600推进到块632。
在块632中,计算设备102确定新的配置设置,以使平台配置更加优化。新的配置设置可以包括针对模型特定寄存器、I/O寄存器、存储器地址的新值或针对计算设备102的任何其他配置设置。在一些实施例中,配置设置可以对应于寄存器或存储器位置内的特定位字段。新的配置设置中的每个可以对应于由固件环境302导出的平台配置设置314。在一些实施例中,在块634中计算设备102可以基于一个或多个配置改变策略316确定新的配置设置。配置改变策略316可以被体现为基于特定性能问题定义新的配置设置的一组规则。例如,配置改变策略可以指示应该启用硬件预取器,以改进存储器带宽和/或延迟。此外或者可替换地,配置改变策略316可以被体现为已知要适合于特定硬件部件和/或硬件部件的组合的一组平台配置设置314。
在块636中,计算设备102确定是否可以在运行时改变配置设置。某些低级配置设置(例如,存储器交错)仅可以在引导期间通过固件环境302来配置。计算设备102可以维持运行时能够的平台配置设置314以及运行时不能够的那些平台配置设置314的列表。在块634中,如果改变不是运行时能够的,则方法600分支到块642,如下所述。如果改变是运行时能够的,则方法600推进到块640。
在640块中,计算设备102在运行时改变平台配置设置314。配置改变可以基本上立即发生,或可以被安排在方便时间。为了执行配置改变,计算设备102可以设置用于模型特定寄存器、I/O寄存器、存储器地址的适当值或执行如块632中确定的其他配置操作。在改变平台配置之后,方法600循环回到块624,以针对次优平台配置继续监控。
参考回到块638,如果改变不是运行时能够的,则方法600分支到块642。在块642中,计算设备102生成针对新的配置设置的一个或多个配置指令。如以上描述的,可以由固件环境302解释或执行每个配置指令,以便在引导期间改变平台配置设置314。
在块644中,计算设备102将配置指令安全地传递到固件环境302。在一些实施例中,计算设备102可以对配置指令进行数字签名,从而允许固件环境302来检验配置指令源。在一些实施例中,计算设备102也可以使用安全或加密的信道传送配置指令到固件环境302。在一些实施例中,在块646中计算设备102可以产生包括配置指令的更新封装体。如以上描述的,更新封装体可以被体现为在受保护模式虚拟存储器中存储的数据块。配置指令可以使用通过固件环境302和/或配置模块304可读的任何格式被存储在更新封装体内。在一些实施例中,在块648中计算设备102可以将更新封装体传递到固件环境302。如以上描述的,为了从操作系统204传递存储器中的数据到固件环境302,可以生成由操作系统204使用的虚拟存储器地址到由固件环境302使用的物理地址之间的映射。例如,UpdateCapsule()UEFI函数可以用于将更新封装体和存储器映射传递到固件环境302用于处理。
在块650中,在一些实施例中计算设备102可以使用可管理性引擎134从管理服务器104接收配置指令。管理服务器104可以对配置指令进行数字签名和/或加密,从而允许计算设备102来验证配置指令。可管理性引擎134可以在握手协议期间存储配置指令直到通过固件环境302查询,如以上描述的那样。此外,虽然被图示为在方法600期间被执行,但是可管理性引擎134能够进行带外网络通信,从而允许从管理服务器104接收配置指令,而与处理器120或操作系统204的状态无关。因此,可管理性引擎134可以在任何时间从管理服务器104接收配置指令并且存储配置指令直到需要为止。
在块652中,重置计算设备102。计算设备102可以使用标准接口(诸如ResetSystem() UEFI函数)或高级配置和电源接口(“ACPI”)重置命令来重置自身。在一些实施例中,例如当配置指令要作为更新封装体被传递到固件环境302时,计算设备102可以执行热复位,其不清除存储器的内容。在一些实施例中,例如当已经从管理服务器104通过可管理性引擎134接收配置指令时,计算设备102可以被用户重置。在重置后,方法600循环回到在图6A中示出的块602,以根据配置指令重新初始化平台和更新配置设置。
现在参考图7,在使用中,管理服务器104可以执行用于平台配置的方法700。方法700以块702开始,在块702中管理服务器104从计算设备102接收导出的平台配置设置314。如以上描述的,导出的平台配置设置314由计算设备的固件环境302生成,并且可以由计算设备102的操作系统204或由计算设备102的可管理性引擎134传输。虽然被图示为从单个计算设备102接收配置设置,但是在许多实施例中管理服务器104可以接收针对许多计算设备102(例如,针对通过组织使用的计算设备102的所有)的配置设置。
在块704中,管理服务器104基于导出的平台配置设置314确定计算设备102的平台配置是否次优。为了确定平台是否被次优配置,管理服务器104可以将配置设置与一组已知的配置设置进行比较。在一些实施例中,在块706中,管理服务器104可以将计算设备102的操作特性与预定义阈值进行比较。为了确定操作特性,管理服务器104可以从计算设备102接收测量或剖析信息。通过监控许多计算设备102,管理服务器104可能能够检测常见的错误配置。在块708中,管理服务器104确定平台配置是否是次优。如果不是的话,方法700循环回到块702,以继续监控计算设备102。如果平台配置是次优,则方法700推进到块710。
在块710中,管理服务器104确定新的配置设置,以使计算设备102的平台配置更加优化。新的配置设置可以包括针对模型特定寄存器、I/O寄存器、存储器地址的新值或特定于计算设备102的任何其他配置设置。在一些实施例中,配置设置可以对应于寄存器或存储器位置内的特定位字段。新的配置设置中的每个可以对应于由固件环境302导出的平台配置设置314。在一些实施例中,在块712中管理服务器104可以基于一个或多个配置改变策略316确定新的配置设置。如以上描述的,配置改变策略316可以被体现为基于特定性能问题定义新的配置设置的一组规则。例如,配置改变策略可以指示应该启用硬件预取器,以改进存储器带宽和/或延迟。此外或者可替换地,配置改变策略316可以被体现为已知要适合于特定硬件部件和/或硬件部件的组合的一组平台配置设置314。
在块714中,管理服务器104生成用于新的配置设置的一个或多个配置指令。每个配置指令可以由计算设备102的固件环境302解释或执行,以便在引导期间改变平台配置设置314。由管理服务器104生成的配置指令可以在引导期间被专门地执行;因此,管理服务器104可以不确定配置改变是否是运行时能够。
在块716中,管理服务器104将配置设置传输到计算设备102。如以上描述的,可以由操作系统204或由处理器120执行的应用程序或者由可管理性引擎134接收配置指令。配置指令可以被传输到可管理性引擎134,而与处理器120或操作系统204的状态无关,因为可管理性引擎134具有带外网络通信能力。如以上描述的,当被传输到可管理性引擎134时,配置指令可以在计算设备102被下一次重置时变得有效。在传输配置指令之后,方法700循环回到块702,以继续监控计算设备102。
示例
以下提供本文中公开的技术的说明性示例。技术的实施例可以包括以下描述的示例的任何一个或多个和任何组合。
示例1包括用于提供服务到数据存储区的计算设备,该计算设备包括:用于存储一个或多个变量的非易失性存储区;非易失性存储策略,定义非易失性存储区中的保留空间的最小量;和非易失性存储区访问模块,用于(i)接收服务调用到非易失性存储区;(ii)基于非易失性存储策略确定在非易失性存储区中的可用空闲空间;和(iii)基于非易失性存储区中的可用空闲空间响应于服务调用。
示例2包括示例1的主题,并且其中非易失性存储区访问模块通过计算设备的固件环境来建立。
示例3包括示例1和2中的任何一个的主题,并且其中确定可用空闲空间进一步包括确定服务调用的调用者的身份;以及基于非易失性存储策略和调用者的身份确定可用空闲空间;其中非易失性存储策略进一步基于调用者的身份定义保留空间的量。
示例4包括示例1-3中的任何一个的主题,并且其中确定调用者的身份包括分析存储在计算设备的系统堆栈中的返回地址。
示例5包括示例1-4中的任何一个的主题,并且其中服务调用包括设置在非易失性存储区中的变量的调用;并且响应于服务调用包括确定可用空闲空间是否足以存储变量;以及响应于可用空闲空间是足够的确定而将变量存储在非易失性存储区中。
示例6包括示例1-5中的任何一个的主题,并且其中确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间;以及存储变量进一步包括:压缩变量来产生压缩的变量数据;将压缩的变量数据存储在非易失性存储区中;以及基于压缩的变量数据更新预测压缩比。
示例7包括示例1-6中的任何一个的主题,并且其中服务调用包括设置在非易失性存储区中的变量的调用;以及响应于服务调用包括:确定可用空闲空间是否足以存储变量;以及响应于可用空闲空间不是足够的确定来给设置变量的调用的调用者指示错误。
示例8包括示例1-7中的任何一个的主题,并且其中确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间。
示例9包括示例1-8中的任何一个的主题,并且其中服务调用包括查询针对存储在非易失性存储区中的变量的信息的调用;并且响应于服务调用包括将可用空闲空间返回到查询信息的调用的调用者。
示例10包括示例1-9中的任何一个的主题,并且其中确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间。
示例11包括用于平台配置的计算设备,该计算设备包括:由该计算设备的固件环境建立的配置模块,该配置模块用于(i)确定关于对计算设备的操作系统不可访问的计算设备的配置设置的信息,和(ii)导出关于配置设置的信息,使得导出的信息对于操作系统是可访问的;以及由操作系统建立的配置代理模块,该配置代理模块用于(i)基于导出的信息确定针对计算设备的新的配置设置,以及(ii)使用新的配置设置配置计算设备。
示例12包括示例11的主题,并且其中配置设置包括平台特定的配置设置。
示例13包括示例11和12中的任何一个的主题,并且其中平台特定的配置设置包括硬件预取器启用设置、存储器交错设置、模型特定寄存器值或芯片组寄存器值中的一个。
示例14包括示例11-13中的任何一个的主题,并且其中导出信息包括更新引用信息的系统表;以及传递系统表到引导目标来引导操作系统。
示例15包括示例11-14中的任何一个的主题,并且其中确定新的配置设置包括将计算设备的操作特性与预定义阈值进行比较;以及基于操作特性与预定义阈值的比较确定新的配置设置。
示例16包括示例11-15中的任何一个的主题,并且其中配置代理模块进一步用于确定是否可以在运行时配置新的配置设置;响应于可以在运行时配置新的配置设置的确定来基于新的配置设置配置计算设备;以及响应于不能在运行时配置新的配置设置的确定:(i)基于新的配置设置生成配置指令,和(ii)重置计算设备;其中计算设备进一步包括由操作系统建立的第一安全通信模块,第一安全通信模块用于在重置计算设备之前从操作系统将配置指令安全地传递到固件环境;其中计算设备进一步包括由固件环境建立的第二安全通信模块,第二安全通信模块用于(i)响应于重置计算设备接收配置指令,和(ii)验证配置指令;并且其中由固件环境建立的配置模块进一步用于响应于验证配置指令而基于新的配置设置来配置计算设备。
示例17包括示例11-16中的任何一个的主题,并且其中从操作系统将配置指令安全地传递到固件环境包括从操作系统传递更新封装体到固件环境,更新封装体用于包括配置指令;并且接收配置指令包括处理更新封装体。
示例18包括示例11-17中的任何一个的主题,并且其中安全地传递配置指令包括对配置指令进行数字签名;并且验证配置指令包括检验配置指令的数字签名。
示例19包括用于平台配置的计算设备,该计算设备包括:带外处理器,从管理服务器接收配置指令,该配置指令用于定义新的配置设置用于不可由计算设备的操作系统访问的计算设备的配置设置;由计算设备的固件环境建立的安全通信模块,该安全通信模块用于(i)从带外处理器接收配置指令,和(ii)验证配置指令;以及由固件环境建立的配置模块,该配置模块用于响应于验证配置指令而使用新的配置设置来配置计算设备。
示例20包括示例19的主题,并且其中新的配置设置包括平台特定的配置设置。
示例21包括示例19和20中的任何一个的主题,并且其中平台特定的配置设置包括硬件预取器启用设置、存储器交错设置、模型特定寄存器值或芯片组寄存器值中的一个。
示例22包括示例19-21中的任何一个的主题,并且其中验证配置指令包括执行与带外处理器的握手协议。
示例23包括示例19-22中的任何一个的主题,并且其中验证配置指令包括验证配置指令的数字签名。
示例24包括示例19-23中的任何一个的主题,并且其中配置模块进一步用于确定关于不可由操作系统访问的计算设备的配置设置的信息;以及导出关于计算设备的配置设置的信息,使得导出的信息对于操作系统是可访问的;其中计算设备进一步包括由操作系统建立的配置代理模块,该配置代理模块用于传输关于计算设备的配置设置的导出的信息到管理服务器,其中新的配置设置基于传输的信息。
示例25包括用于提供服务到数据存储区的方法,该方法包括:通过计算设备接收服务调用到计算设备的非易失性存储区;通过计算设备基于非易失性存储策略确定非易失性存储区中的可用空闲空间,非易失性存储策略定义非易失性存储区中的保留空间的最小量;以及通过计算设备基于非易失性存储区中的可用空闲空间响应于服务调用。
示例26包括示例25的主题,并且其中确定可用空闲空间进一步包括确定服务调用的调用者的身份;以及基于非易失性存储策略和调用者的身份确定可用空闲空间,非易失性存储策略基于调用者的身份定义保留空间的量。
示例27包括示例25和26中的任何一个的主题,并且其中确定调用者的身份包括分析在计算设备的系统堆栈中存储的返回地址。
示例28包括示例25-27中的任何一个的主题,并且其中接收服务调用包括接收设置非易失性存储区中的变量的调用;以及响应于服务调用包括确定可用空闲空间是否足以存储变量;以及响应于确定可用空闲空间是足够的而存储变量在非易失性存储区中。
示例29包括示例25-28中的任何一个的主题,并且其中确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间;以及存储变量进一步包括压缩变量以产生压缩的变量数据;将压缩的变量数据存储在非易失性存储区中;以及基于压缩的变量数据更新预测压缩比。
示例30包括示例25-29中的任何一个的主题,并且其中接收服务调用包括接收设置在非易失性存储区中的变量的调用;以及响应于服务调用包括确定可用空闲空间是否足以存储变量;以及响应于确定可用空闲空间是不足的而给设置变量的调用的调用者指示错误。
示例31包括示例25-30中的任何一个的主题,并且其中确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间。
示例32包括示例25-31中的任何一个的主题,并且其中接收服务调用包括接收查询针对存储在非易失性存储区中的变量的信息的调用;以及响应于服务调用包括返回可用空闲空间给查询信息的调用的调用者。
示例33包括示例25-32中的任何一个的主题,并且其中确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间。
示例34包括用于平台配置的方法,该方法包括:由该计算设备的固件环境确定关于不可由计算设备的操作系统访问的计算设备的配置设置的信息;由固件环境导出关于配置设置的信息,使得导出的信息对于操作系统是可访问的;由操作系统基于导出的信息确定针对计算设备的新的配置设置;以及由操作系统使用新的配置设置配置计算设备。
示例35包括示例34的主题,并且其中配置设置包括平台特定的配置设置。
示例36包括示例34和35中的任何一个的主题,并且其中平台特定的配置设置包括硬件预取器启用设置、存储器交错设置、模型特定寄存器值或芯片组寄存器值中的一个。
示例37包括示例34-36中的任何一个的主题,并且其中导出信息包括由固件环境更新引用信息的系统表;以及由固件环境传递系统表到引导目标来引导操作系统。
示例38包括示例34-37中的任何一个的主题,并且其中确定新的配置设置包括将计算设备的操作特性与预定义阈值进行比较;以及基于将操作特性与预定义阈值进行比较确定新的配置设置。
示例39包括示例34-38中的任何一个的主题,并且进一步包括:由操作系统确定是否可以在运行时配置新的配置设置;响应于确定不能在运行时配置新的配置设置:由操作系统基于新的配置设置生成配置指令;从操作系统将配置指令安全地传递到固件环境;重置计算设备;由固件环境响应于重置计算设备接收配置指令;由固件环境验证配置指令以及由固件环境响应于验证配置指令基于新的配置设置来配置计算设备,其中基于新的配置设置来配置计算设备包括响应于确定可以在运行时配置新的配置设置来基于新的配置设置配置计算设备。
示例40包括示例34-39中的任何一个的主题,并且其中将配置指令从操作系统安全地传递到固件环境包括将更新封装体从操作系统传递到固件环境,更新封装体用于包括配置指令;以及接收配置指令包括处理更新封装体。
示例41包括示例34-40中的任何一个的主题,并且其中安全地传递配置指令包括对配置指令进行数字签名;以及验证配置指令包括检验配置指令的数字签名。
示例42包括用于平台配置的方法,该方法包括:由计算设备的带外处理器从管理服务器接收配置指令,该配置指令定义新的配置设置用于不可由计算设备的操作系统访问的计算设备的配置设置;由计算设备的固件环境从带外处理器接收配置指令;由固件环境验证配置指令;以及由固件环境响应于验证配置指令使用新的配置设置来配置计算设备。
示例43包括示例42的主题,并且其中新的配置设置包括平台特定的配置设置。
示例44包括示例42和43中的任何一个的主题,并且其中平台特定的配置设置包括硬件预取器启用设置、存储器交错设置、模型特定寄存器值或芯片组寄存器值中的一个。
示例45包括示例42-44中的任何一个的主题,并且其中验证配置指令包括与带外处理器执行握手协议。
示例46包括示例42-45中的任何一个的主题,并且其中验证配置指令包括检验配置指令的数字签名。
示例47包括示例42-46中的任何一个的主题,并且进一步包括由计算设备确定关于不可由操作系统访问的计算设备的配置设置的信息;以及由计算设备传输关于计算设备的配置设置的信息到管理服务器,其中新的配置设置基于传输的信息。
示例48包括示例42-47中的任何一个的主题,并且进一步包括由固件环境导出关于计算设备的配置设置的信息,使得导出的信息对于操作系统是可访问的;其中传输信息包括由操作系统传输导出的信息。
示例49包括计算设备,该计算设备包括:处理器;以及在其中存储多个指令的存储器,多个指令当被处理器执行时使计算设备执行示例25-48中的任何一个的方法。
示例50包括一个或多个机器可读存储介质,该一个或多个机器可读存储介质包括存储在其上的多个指令,该多个指令响应于被执行导致计算设备执行示例25-48中的任何一个的方法。
示例51包括计算设备,该计算设备包括用于执行示例25-48中的任何一个的方法的装置。

Claims (25)

1.一种用于提供服务到数据存储区的计算设备,所述计算设备包括:
非易失性存储区,用于存储一个或多个变量;
非易失性存储策略,定义非易失性存储区中的保留空间的最小量;以及
非易失性存储区访问模块,用于(i)接收服务调用到非易失性存储区,(ii)基于非易失性存储策略确定在非易失性存储区中的可用空闲空间,和(iii)基于非易失性存储区中的可用空闲空间响应于服务调用。
2.权利要求1所述的计算设备,其中非易失性存储区访问模块由计算设备的固件环境建立。
3.权利要求1所述的计算设备,其中确定可用空闲空间进一步包括:
确定服务调用的调用者的身份;以及
基于非易失性存储策略和调用者的身份确定可用空闲空间;
其中非易失性存储策略基于调用者的身份进一步定义保留空间的量。
4.权利要求1-3中的任何一项所述的计算设备,其中:
服务调用包括设置在非易失性存储区中的变量的调用;以及
响应于服务调用包括:
确定可用空闲空间是否足以存储变量;和
响应于可用空闲空间是足够的确定而将变量存储在非易失性存储区中。
5.权利要求4所述的计算设备,其中:
确定可用空闲空间包括基于非易失性存储区的物理空闲空间和非易失性存储区的预测压缩比确定可用空闲空间;以及
存储变量进一步包括:
压缩变量以产生压缩的变量数据;
将压缩的变量数据存储在非易失性存储区中;以及
基于压缩的变量数据更新预测压缩比。
6.权利要求1-3中的任何一项所述的计算设备,其中:
服务调用包括查询针对存储在非易失性存储区中的变量的信息的调用;以及
响应于服务调用包括返回可用空闲空间到查询信息的调用的调用者。
7.一种用于平台配置的计算设备,所述计算设备包括:
由计算设备的固件环境建立的配置模块,所述配置模块用于(i)确定关于不可由计算设备的操作系统访问的计算设备的配置设置的信息,和(ii)导出关于配置设置的信息,使得导出的信息对于操作系统是可访问的;以及
由操作系统建立的配置代理模块,所述配置代理模块用于(i)基于导出的信息确定针对计算设备的新的配置设置,以及(ii)使用新的配置设置配置计算设备。
8.权利要求7所述的计算设备,其中所述配置设置包括从硬件预取器启用设置、存储器交错设置、模型特定寄存器值或芯片组寄存器值选择的平台特定的配置设置。
9.权利要求7所述的计算设备,其中导出信息包括:
更新用于引用信息的系统表;以及
传递系统表到引导目标来引导操作系统。
10.权利要求7所述的计算设备,其中确定新的配置设置包括:
将计算设备的操作特性与预定义阈值进行比较;以及
基于操作特性与预定义阈值的比较确定新的配置设置。
11.权利要求7-10中的任何一项所述的计算设备,其中:
配置代理模块进一步用于:
确定是否可以在运行时配置新的配置设置;
响应于可以在运行时配置新的配置设置的确定,基于新的配置设置配置计算设备;以及
响应于不能在运行时配置新的配置设置的确定:(i)基于新的配置设置生成配置指令,和(ii)重置计算设备;
其中计算设备进一步包括由操作系统建立的第一安全通信模块,第一安全通信模块用于在重置计算设备之前从操作系统将配置指令安全地传递到固件环境;
其中计算设备进一步包括由固件环境建立的第二安全通信模块,第二安全通信模块用于(i)响应于重置计算设备接收配置指令,和(ii)验证配置指令;并且
其中由固件环境建立的配置模块进一步用于响应于验证配置指令基于新的配置设置来配置计算设备。
12.权利要求11所述的计算设备,其中:
从操作系统安全地传递配置指令到固件环境包括从操作系统传递更新封装体到固件环境,更新封装体用于包括配置指令;并且
接收配置指令包括处理更新封装体。
13.一种用于平台配置的计算设备,所述计算设备包括:
带外处理器,用于从管理服务器接收配置指令,所述配置指令用于定义新的配置设置用于不可由计算设备的操作系统访问的计算设备的配置设置;
由计算设备的固件环境建立的安全通信模块,所述安全通信模块用于(i)从带外处理器接收配置指令,和(ii)验证配置指令;以及
由固件环境建立的配置模块,所述配置模块用于响应于验证配置指令使用新的配置设置来配置计算设备。
14.权利要求13所述的计算设备,其中:
配置模块进一步用于:
确定关于不可由操作系统访问的计算设备的配置设置的信息;以及
导出关于计算设备的配置设置的信息,使得导出的信息对于操作系统是可访问的;
其中计算设备进一步包括由操作系统建立的配置代理模块,所述配置代理模块用于传输关于计算设备的配置设置的导出的信息到管理服务器,其中新的配置设置基于传输的信息。
15.一种用于提供服务到数据存储区的方法,所述方法包括:
通过计算设备接收服务调用到计算设备的非易失性存储区;
通过计算设备基于非易失性存储策略确定非易失性存储区中的可用空闲空间,非易失性存储策略定义非易失性存储区中的保留空间的最小量;以及
通过计算设备基于非易失性存储区中的可用空闲空间响应于服务调用。
16.权利要求15所述的方法,其中确定可用空闲空间进一步包括:
确定服务调用的调用者的身份;以及
基于非易失性存储策略和调用者的身份确定可用空闲空间,非易失性存储策略基于调用者的身份定义保留空间的量。
17.权利要求15所述的方法,其中:
接收服务调用包括接收设置非易失性存储区中的变量的调用;以及
响应于服务调用包括:
确定可用空闲空间是否足以存储变量;以及
响应于确定可用空闲空间是足够的而存储变量在非易失性存储区中。
18.权利要求15所述的方法,其中:
接收服务调用包括接收查询针对存储在非易失性存储区中的变量的信息的调用;以及
响应于服务调用包括返回可用空闲空间给查询信息的调用的调用者。
19.一种用于平台配置的方法,所述方法包括:
由该计算设备的固件环境确定关于不可由计算设备的操作系统访问的计算设备的配置设置的信息;
由固件环境导出关于配置设置的信息,使得导出的信息对于操作系统是可访问的;
由操作系统基于导出的信息确定针对计算设备的新的配置设置;以及
由操作系统使用新的配置设置配置计算设备。
20.权利要求19所述的方法,进一步包括:
由操作系统确定是否可以在运行时配置新的配置设置;
响应于不能在运行时配置新的配置设置的确定:
由操作系统基于新的配置设置生成配置指令;
从操作系统将配置指令安全地传递到固件环境;
重置计算设备;
由固件环境响应于重置计算设备接收配置指令;
由固件环境验证配置指令;以及
由固件环境响应于验证配置指令而基于新的配置设置来配置计算设备,
其中基于新的配置设置来配置计算设备包括响应于确定可以在运行时配置新的配置设置来基于新的配置设置配置计算设备。
21.一种用于平台配置的方法,所述方法包括:
由计算设备的带外处理器从管理服务器接收配置指令,所述配置指令定义新的配置设置用于不可由计算设备的操作系统访问的计算设备的配置设置;
由计算设备的固件环境从带外处理器接收配置指令;
由固件环境验证配置指令;以及
由固件环境响应于验证配置指令使用新的配置设置来配置计算设备。
22.权利要求21所述的方法,进一步包括:
由计算设备确定关于不可由操作系统访问的计算设备的配置设置的信息;
由固件环境导出关于计算设备的配置设置的信息,使得导出的信息对于操作系统是可访问的;以及
由操作系统传输关于计算设备的配置设置的信息到管理服务器,其中新的配置设置基于传输的信息。
23.一种计算设备,包括:
处理器;和
在其中存储多个指令的存储器,所述多个指令当被处理器执行时使计算设备执行权利要求15-22中的任何一个的方法。
24.一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包括存储在其上的多个指令,所述多个指令响应于被执行而导致计算设备执行权利要求15-22中的任何一个的方法。
25.一种计算设备,所述计算设备包括用于执行权利要求15-22中的任何一个的方法的装置。
CN201380079957.3A 2013-10-30 2013-10-30 平台非易失性存储区管理和平台配置 Pending CN105579954A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/067451 WO2015065360A1 (en) 2013-10-30 2013-10-30 Platform non-volatile store management and platform configuration

Publications (1)

Publication Number Publication Date
CN105579954A true CN105579954A (zh) 2016-05-11

Family

ID=53004778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079957.3A Pending CN105579954A (zh) 2013-10-30 2013-10-30 平台非易失性存储区管理和平台配置

Country Status (4)

Country Link
US (1) US20160246510A1 (zh)
EP (1) EP3063622A4 (zh)
CN (1) CN105579954A (zh)
WO (1) WO2015065360A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110266517A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 基于网关的外部服务调用方法、装置及终端设备
CN110764704A (zh) * 2019-10-18 2020-02-07 浙江大华技术股份有限公司 一种环境变量写入方法、存储介质及电子装置
CN112119384A (zh) * 2018-05-07 2020-12-22 苹果公司 用于管理存储设备内的存储器分配以改善相机应用程序的操作的技术

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642623B1 (en) * 2016-07-07 2020-05-05 American Megatrends International, Llc Preserving firmware settings during firmware updates
CN107797807B (zh) * 2016-08-29 2021-04-06 阿里巴巴集团控股有限公司 生成容器的方法、装置、终端、服务器与系统
US10552270B2 (en) * 2016-12-22 2020-02-04 Intel Corporation Systems and methods for in-field core failover
US11520599B2 (en) 2018-01-23 2022-12-06 Diebold Nixdorf Incorporated Application interface and database structures to remotely manage bios settings of automated teller machines
US11237606B2 (en) * 2019-03-08 2022-02-01 International Business Machines Corporation System parameter trace and test coverage optimization in a computer system
US11294691B2 (en) * 2020-02-03 2022-04-05 Dell Products L.P. Dynamic memory layouts for firmware updates based on OEM memory subsystem
US11907405B2 (en) * 2020-10-14 2024-02-20 International Business Machines Corporation Secure data storage device access control and sharing
US11803454B2 (en) * 2021-04-30 2023-10-31 Dell Products L.P. Chained loading with static and dynamic root of trust measurements

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020133702A1 (en) * 2001-03-16 2002-09-19 Stevens Curtis E. Methods of granting access to a protected area
CN1809813A (zh) * 2003-06-16 2006-07-26 英特尔公司 利用渴望压缩、故障保险提取和重新启动时压缩扫描来存储固件变量的方法
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US20130179659A1 (en) * 2012-01-09 2013-07-11 Samsung Electronics Co., Ltd. Data storage device with selective data compression
US20130262849A1 (en) * 2012-03-29 2013-10-03 Bheeshmar Redheendran Automatic reconfiguration of initialization firmware in a computer system
US20140282938A1 (en) * 2013-03-15 2014-09-18 Adam Moisa Method and system for integrated cloud storage management

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007197B2 (en) * 2002-05-31 2006-02-28 Microsoft Corporation Virtual logging system and method
EP1443519B1 (en) * 2003-01-31 2007-11-14 STMicroelectronics S.r.l. Embeddable flash memory system for non-volatile storage of code, data and bit-streams for embedded FPGA configurations
US7373551B2 (en) * 2004-12-21 2008-05-13 Intel Corporation Method to provide autonomic boot recovery
US7581089B1 (en) * 2006-04-20 2009-08-25 The United States Of America As Represented By The Director Of The National Security Agency Method of protecting a computer stack
US8068365B2 (en) * 2008-02-04 2011-11-29 Mosaid Technologies Incorporated Non-volatile memory device having configurable page size
US9003001B2 (en) * 2010-03-15 2015-04-07 Cisco Technology, Inc. Bios parameter virtualization via BIOS configuration profiles

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020133702A1 (en) * 2001-03-16 2002-09-19 Stevens Curtis E. Methods of granting access to a protected area
CN1809813A (zh) * 2003-06-16 2006-07-26 英特尔公司 利用渴望压缩、故障保险提取和重新启动时压缩扫描来存储固件变量的方法
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US20130179659A1 (en) * 2012-01-09 2013-07-11 Samsung Electronics Co., Ltd. Data storage device with selective data compression
US20130262849A1 (en) * 2012-03-29 2013-10-03 Bheeshmar Redheendran Automatic reconfiguration of initialization firmware in a computer system
US20140282938A1 (en) * 2013-03-15 2014-09-18 Adam Moisa Method and system for integrated cloud storage management

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112119384A (zh) * 2018-05-07 2020-12-22 苹果公司 用于管理存储设备内的存储器分配以改善相机应用程序的操作的技术
CN110266517A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 基于网关的外部服务调用方法、装置及终端设备
CN110266517B (zh) * 2019-05-21 2021-10-29 深圳壹账通智能科技有限公司 基于网关的外部服务调用方法、装置及终端设备
CN110764704A (zh) * 2019-10-18 2020-02-07 浙江大华技术股份有限公司 一种环境变量写入方法、存储介质及电子装置
CN110764704B (zh) * 2019-10-18 2023-09-05 浙江大华技术股份有限公司 一种环境变量写入方法、存储介质及电子装置

Also Published As

Publication number Publication date
EP3063622A4 (en) 2017-07-05
US20160246510A1 (en) 2016-08-25
WO2015065360A1 (en) 2015-05-07
EP3063622A1 (en) 2016-09-07

Similar Documents

Publication Publication Date Title
CN105579954A (zh) 平台非易失性存储区管理和平台配置
EP3906490B1 (en) Trusted execution broker
US10025934B2 (en) Media protection policy enforcement for multiple-operating-system environments
EP3561672B1 (en) Method and apparatus for a mobile device based cluster computing infrastructure
WO2017071266A1 (zh) 一种业务和资源编排的系统、方法及装置
US11960631B2 (en) Vehicle diagnosis method, server and diagnosis device
CN105393256A (zh) 基于策略的安全web引导
US20200012501A1 (en) Information Handling Systems And Method To Provide Secure Shared Memory Access At OS Runtime
CN109691028B (zh) 用于容器的设备虚拟化
CN107408090A (zh) 输入/输出控制器访问通道的动态配置
US10042673B1 (en) Enhanced application request based scheduling on heterogeneous elements of information technology infrastructure
US20230232549A1 (en) System and method for guided deployment of managed systems
US20230229818A1 (en) System and method for physical security of distributed systems
CN116627520B (zh) 基板管理控制器的系统运行方法以及基板管理控制器
CA2942619A1 (en) Host device coupled to a mobile phone and method of operating the same
US11321109B2 (en) Container engine for selecting driver based on container metadata
US11190519B2 (en) Dock administration using a token
US10460111B2 (en) System and method to isolate host and system management in an information handling system
US20150358213A1 (en) Systems and methods for sharing a single firmware image in a chassis configured to receive a plurality of modular information handling systems
US20180341496A1 (en) Dynamic Microsystem Reconfiguration With Collaborative Verification
US9858085B2 (en) Information processing including BIOS apparatus, information processing method thereof, and storage medium
US9270530B1 (en) Managing imaging of multiple computing devices
US11736570B2 (en) System and method for occupancy based management of distributed systems
US8209449B2 (en) Method for enabling several virtual processing units to directly and concurrently access a peripheral unit
CN116089020B (zh) 虚拟机运行方法、扩容方法、扩容系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20200110

AD01 Patent right deemed abandoned