CN105556461A - 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 - Google Patents

用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 Download PDF

Info

Publication number
CN105556461A
CN105556461A CN201380079814.2A CN201380079814A CN105556461A CN 105556461 A CN105556461 A CN 105556461A CN 201380079814 A CN201380079814 A CN 201380079814A CN 105556461 A CN105556461 A CN 105556461A
Authority
CN
China
Prior art keywords
firmware interface
interface driver
driver
protogenous
logic
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.)
Granted
Application number
CN201380079814.2A
Other languages
English (en)
Other versions
CN105556461B (zh
Inventor
V.J.兹姆梅
M.A.罗斯曼
R.B.巴恩森
R.C.斯旺森
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 CN105556461A publication Critical patent/CN105556461A/zh
Application granted granted Critical
Publication of CN105556461B publication Critical patent/CN105556461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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/22Microcontrol or microprogram arrangements
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述了与预OS(预操作系统)镜像重写以提供跨架构支持、安全性自省和/或性能优化有关的方法和设备。在一实施例中,响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序,逻辑将非原生固件接口驱动程序重写成原生固件接口驱动程序。通过在操作系统运行时间期间执行它的操作中的一个或多个操作,逻辑将非原生固件接口驱动程序重写成原生固件接口驱动程序。还要求保护和描述了其它实施例。

Description

用于预OS镜像重写以提供跨架构支持、安全性自省和性能优化的技术
技术领域
本公开一般涉及计算的领域。更具体地说,实施例一般涉及预OS(预操作系统)镜像重写以提供跨架构支持、安全性自省和/或性能优化。
背景技术
固件的安全加载和/或更新是计算装置确保只有授权固件和/或软件在平台上执行的重要过程。
在一些系统中,UEFI(统一可扩展固件接口)规范提供跨若干操作系统(OS)环境的统一的基于固件的引导接口。然而,UEFI二进制平台绑定通常可用于有限数量的平台。因此,在各种计算平台上实现固件加载和/或更新中要求更大的灵活性。
附图说明
参照附图提供详细的描述。在附图中,附图标记最左边的一个或多个数字识别最先出现该附图标记的附图。在不同的附图中使用相同的附图标记指示类似或相同的项目。
图1示出根据实施例在引导流程期间用于二进制转换器的方法的流程图。
图2示出根据实施例用于计算平台中的二进制转换器和完整性高速缓存的架构的框图。
图3提供根据实施例的引导流程的时间视图。
图4-6示出可用于实现本文中讨论的一些实施例的计算系统的实施例的框图。
具体实施方式
在下面的说明中,阐述了多个特定细节以便提供各种实施例的彻底理解。然而,可在没有所述特定细节的情况下实现各种实施例。在其它实例中,未详细描述公知的方法、过程、组件和电路以免混淆特定实施例。此外,实施例的各种方面可使用各种部件执行,如集成半导体电路(“硬件”)、组织成一个或多个程序(“软件”)的计算机可读指令或者硬件与软件的某个组合。为了本公开的目的,对“逻辑”的引用将意指硬件、软件、固件(FM)或其某个组合。
一些实施例重写预OS(预操作系统)镜像以提供跨架构支持、安全性自省和/或性能优化。例如,一些实施例能够大大地改进固件更新过程安全性以及效率。另外,各种实施例能够大幅降低固件更新期间的系统故障风险。更具体地说,实施例解决了具有用于各种UEFI二进制平台绑定(例如,包括32位或64位架构)的原生执行模式二进制的问题。例如,一个实施例提供可执行文件的可变性以用于应用二进制接口(ABI)可移植性、安全性和/或性能的目的。
通常,固件加载和/或维护是用于计算装置(包括移动装置(例如,电话、平板、UMPC(超级移动个人计算机)、膝上型计算机、超级本、智能手表、智能眼镜等))确保在平台上(例如,经BIOS(基本输入输出系统)和/或OS)仅加载和/或更新授权固件和/或软件的重要过程。在一些系统中,UEFI(统一可扩展固件接口)规范提供在若干类型的操作系统与平台固件之间的接口。另外,在UEFI中,存在采用EFI(可扩展固件接口)字节代码(EBC)的形式的可移植的可执行文件的概念。这允许在例如Itanium?与IA-32之间的跨平台使用。自2001年EBC的开始,EFI已变成UEFI,并且x64和ARM?32位已被添加为支持的绑定。然而,存在关于EBC解释器的一些大小问题,并且大多数独立硬件供应商(IHV)已选择对于卷UEFI平台进行编译;即,在个人计算机的Windows?8类中找到的x64UEFI绑定。由于UEFI已不能输送用于在使用中的各种OS环境的真实跨平台绑定,因此,这对于一些制造商和系统提供商是个问题。
一些实施例将一个或多个元素引入计算系统的引导流程。这些元素可包括二进制转换器和完整性高速缓存。在一实施例中,在被引导的平台的原生指令集架构(称为原生ISA)中写入二进制转换器。二进制转换器可将备选CPU(中央处理单元)二进制(也称为非原生ISA)映射到原生ISA,或者将一般原生ISA映射到使用特定CPU特征(例如,AVX3)的优化的二进制,其中后者是优化的原生ISA。
重写器/二进制转换器可在平台第一次引导时在训练引导上执行;或者它可在定时SMI(系统管理中断)或另一中断之后的引导期间,或者在定时SMI之后的运行时间,在混杂模式中运行;或者它可在备用核上运行(例如,由于UEFI是单线程,因此,通常存在可用于此类并发活动的多于一个逻辑CPU)。一旦二进制代码被重写(例如,从非原生ISA重写成原生ISA),则它被存储在完整性高速缓存中。在连接备用的情况下,无需将完整性高速缓存的内容移到持久性存储器,但在一些更深的睡眠状态(例如,C-9)中,可能丢失完整性高速缓存。为此,一些实施例可将完整性高速缓存的内容移动或复制到持久性/非易失性存储器。另外,一些实施例将完整性高速缓存内容卸载到持久性存储器(也称为非易失性存储器或NVM)中,例如,快速封装上存储器。在各种实施例中,本文中讨论的NVM或持久性存储器装置包括闪速存储器、自旋转移矩随机存取存储器(STTRAM)、电阻随机存取存储器、3D(三维)交叉点存储器(例如相变存储器(PCM)),等等。在一实施例中,此卸载经客户端上的SXP存储器(例如,在嵌入到南复合体(PCH或外设控制集线器)中时)以及服务器系统上的存储器控制器外的SXPDIMM(双列直插存储器模块)执行。在不失一般性的情况下,也能够将完整性高速缓存复制到备选的持久性存储器。
在一个实施例中,完整性高速缓存是平台上的安全存储装置,其中存储了原始可执行文件的哈希和重写的二进制代码的实例。这在一些实现中是必需的,这是因为平台需要也支持如同可信计算组(TCG)、测量的引导以及UEFI2.3.1c安全引导的当代特征。在这后两种特征的情况下,存在应用到需要可执行文件的哈希或指纹的平台的某个策略。签名动作和二进制将一般基于非原生ISA,而不是原生ISA中的重写的二进制。因此,将要实施对原始代码的逼真以及重写的二进制的保护。
图1示出根据实施例在引导流程期间用于二进制转换器的方法100的流程图。在一些实施例中,剩余的附图的一个或多个组件(如一个或多个处理器核、二进制重写器/转换器逻辑/代码和/或完整性高速缓存)执行图1的一个或多个操作。
参照图1,在系统引导期间,在操作102确定二进制重写器模块/逻辑/代码是否可用。如果重写器可用(如图2的项214),则在操作104,确定在平台上是否发现任何非原生ISAUEFI驱动程序(例如,存储在参照图4-6讨论的存储装置中)。如果发现驱动程序,则在操作106,确定空间在完整性高速缓存(如图2的高速缓存202)中是否可用于转换操作104的发现的驱动程序。如果在完整性高速缓存中空间可用,则在操作108,将驱动程序重写成原生ISA。在一些实施例中,在操作108也应用CPU特定的优化和/或IRM(内联参考监视器)。例如,IRM将相对于平台的安全性策略来评估每个操作,例如,以便确定给定的可执行文件是否准许I/O操作或者存储器范围是否可访问。
如图1所示,如果在操作102-106的确定是否定的,或者在操作108后,方法100继续引导过程。在操作110,确定是否存在探测的动作,例如,如参考监视器模块(例如图2的参考模块212)检测到的。如果存在,则操作112应用任何本地平台安全性策略。在操作114,确定是否已发生违反(例如,平台安全性策略)。如果是,则在操作116将驱动程序列入黑名单(例如,识别或标记为策略违反者)并且将其卸载。否则,如果在操作110或114的确定是否定的,则在操作118,确定另一监视器故障是否已发生(例如异常或PERF(也称为“性能”,例如,由于固件的引导时间是关键的,因此,操作中过多的延迟或时间是能够被标记或记录的条件))。如果是,则方法100在操作116重新开始;否则,在操作120通过OS加载程序继续引导。
图2示出根据实施例用于计算平台200中的二进制转换器和完整性高速缓存的架构的框图。如图所示,平台包括引导完整性高速缓存202、CS(芯片集)模块204、预EFI初始化(PEI)模块206和/或驱动程序执行环境(DXE)208。
DXE208可包括一个或多个DXE驱动程序210、参考监视器模块212(例如,其监视或检测一个或多个探测的动作)、二进制重写器/转换器214(如本文讨论的)、一个或多个EFI驱动程序216和/或CSM(或封装PC/AT遗留BIOS引导行为的兼容性支持模块)218。
图3提供根据实施例的引导流程300的时间视图。更具体地说,图3示出根据实施例在OS运行时间期间在后台执行其重写操作的二进制转换器(例如,图2的项214)。
如图3所示,在通电时,预验证器促使验证在PEI期间的CPU、芯片集和板初始化。二进制重写器模块214在平台初始化期间例如通过EFI驱动程序调度器模块在DXE中加载。在平台初始化期间,EFI驱动程序调度器也可启动内在服务(例如DXE服务(通过www.uefi.org可得到的UEFI平台初始化规范的第2版)以及SMM(系统管理模式——上面提及的平台初始化规范的第2.4版)内在服务)。如图3所示,二进制转换器(例如,图2的项214)在OS运行时间期间在后台执行其任务(例如,其连续重写操作)。因此,一些实施例将允许提供跨平台支持以及引导时间性能调谐和安全性。后面的安全性能够包括例如可类似于动态校验或断言的内联参考监视器(IRM)。通常,由于不同平台具有备选安全性模型,因此,忽略了类似IRM的逻辑。即时生成代码的能力允许能够映射到许多安全性模型(例如强制接入控制(MAC))的IRM。
一些实施例也能够用于解决在移动到UEFI中的一些其它兼容性顾虑;即,16位PC/AT选项ROM二进制的普遍。一些实施例将16位选项ROM二进制转换成用于目标架构的ISA原生UEFI驱动程序。例如,诸如用于盘的Intl3h的Int-call接口映射到UEFIAPI(例如EFI_BLOCK_IO_PROTOCOL),并且在如outdx、al的16位选项ROM中的基本块映射到更程式化的UEFI调用(例如PciIoProtocol.Io.Write)。
相反,现今不存在二进制转换器。UEFI平台固件具有简单的镜像加载程序,它将镜像复制到存储器中,应用修补(fix-up),并且将控制传递到镜像的入口点。另外,BT(二进制转换)镜像完整性高速缓存的存储和保护不存在。此外,一些实施例也能够存储用于芯片集设置的导出的编程值和SPD(其中,“SPD”指串行存在检测,其可包括在存储存储器设置并且可例如由固件经SMBUS(系统管理总线)读取的DRAM(动态随机存取存储器)板上的(例如,相对小的)EEPROM(电可擦除可编程只读存储器))。
图4示出根据实施例的计算系统400的框图。计算系统400可包括经互连网络(或总线)404通信的一个或多个中央处理单元(CPU)402或处理器。处理器402可包括通用处理器、网络处理器(其处理通过计算机网络403传递的数据)或其它类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。
另外,处理器402可具有单核或多核设计。具有多核设计的处理器402可在同一集成电路(IC)管芯上集成不同类型的处理器核。此外,具有多核设计的处理器402可实现为对称或非对称多处理器。在一实施例中,一个或多个处理器402可与参照前面附图讨论的处理器相同或类似。例如,系统400的一个或多个组件可包括引导完整性高速缓存202和/或二进制重写器/转换器逻辑214(如图4所示的)或参照图1-3讨论的其它组件。此外,参照图1-3所述的操作可由系统400的一个或多个组件执行。
芯片集406也可与互连网络404通信。芯片集406可包括图形和存储器控制集线器(GMCH)408。GMCH408可包括与存储器412通信的存储器控制器410。存储器412可存储数据,包括可由CPU402或计算系统400中包括的任何其它装置执行的指令序列。在一个实施例中,存储器412可包括一个或多个易失性存储(或存储器)装置,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM),或其它类型的存储装置。也可利用非易失性存储器,例如硬盘。另外的装置可经互连网络404通信,例如多个CPU和/或多个系统存储器。
GMCH408也可包括与显示装置416通信的图形接口414。在一个实施例中,图形接口414可经加速图形端口(AGP)或外设组件互连(PCI)(或PCIexpress(PCIe)接口)与显示装置416进行通信。在一实施例中,显示器416(如平板显示器)可通过例如信号转换器与图形接口414通信,所述信号转换器将在例如视频存储器或系统存储器的存储装置中存储的图像的数字表示转换成显示器416解释和显示的显示信号。由显示装置产生的显示信号在由显示器416解释并且随后在显示器416上显示之前可通过各种控制装置。
集线器接口418可允许GMCH408和输入/输出控制集线器(ICH)420进行通信。ICH420可提供到与计算系统400通信的I/O装置的接口。ICH420可通过外设桥(或控制器)424与总线422通信,外设桥(或控制器)424例如外设组件互连(PCI)桥、通用串行总线(USB)控制器或其它类型的外设桥或控制器。桥424可在CPU402与外设装置之间提供数据路径。可以利用其它类型的拓扑。此外,多个总线可例如通过多个桥或控制器与ICH420通信。另外,在各种实施例中,与ICH420通信的其它外围设备可包括集成驱动电子设备(IDE)或小型计算机系统接口(SCSI)硬驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))或其它装置。总线422可与音频装置426、一个或多个盘驱动器428以及网络接口装置430(其与计算机网络403通信)通信。其它装置可经总线422通信。此外,在一些实施例中,各种组件(例如网络接口装置430)可与GMCH408进行通信。另外,处理器402和GMCH408可组合以形成单个芯片,和/或GMCH408的一部分或其整体可包括在处理器402中(而不是例如在芯片集406中包括GMCH408)。此外,在其它实施例中,图形加速器416可包括在GMCH408内。
此外,计算系统400可包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可包括以下的一项或更多项:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如,428)、软盘、压缩盘ROM(CD-ROM)、数字多功能盘(DVD)、闪速存储器、磁光盘或能够存储电子数据(例如,包括指令)的其它类型的非易失性机器可读媒体。在一实施例中,系统400的组件可按例如参照图5所述的点对点(PtP)配置来布置。例如,处理器、存储器和/或输入/输出装置可通过多个点对点接口互连。更具体地说,图5示出根据实施例按点对点(PtP)配置来布置的计算系统500。具体而言,图5示出其中处理器、存储器和输入/输出装置通过多个点对点接口互连的系统。参照图1-4所述的操作可由系统500的一个或多个组件执行。
如图5所示,系统500可包括若干处理器,为清晰起见,只示出其中两个处理器502和504。处理器502和504每个可包括本地存储器控制器集线器(MCH)506和508以实现与存储器510和512的通信。存储器510和/或512可存储各种数据,例如参照图4的存储器412所述的那些。
在一实施例中,处理器502和504可以是参照图4所述的处理器402之一。处理器502和504可分别使用PtP接口电路516和518经点对点(PtP)接口514交换数据。此外,处理器502和504每个可使用点对点接口电路526、528、530和532经各个PtP接口522和524与芯片集520交换数据。芯片集520还可例如使用PtP接口电路537经图形接口536与图形电路534交换数据。
至少一个实施例可提供在处理器502和504内。例如,系统500的一个或多个组件可包括引导完整性高速缓存202和/或二进制重写器/转换器逻辑214(如图5所示的)或参照图1-4讨论的其它组件。此外,参照图1-4所述的操作可由系统500的一个或多个组件执行。此外,重写器/转换器214可存储在存储器510或512中。然而,其它实施例可存在于图5的系统500内的其它电路、逻辑单元或装置中。此外,其它实施例可分布遍及图5所示的若干电路、逻辑单元或装置。
芯片集520可使用PtP接口电路541与总线540通信。总线540可与一个或多个装置通信,如总线桥542和I/O装置543。经总线544,总线桥542可与其它装置通信,如键盘/鼠标545、通信装置546(如调制解调器、网络接口装置或可与计算机网络403通信的其它通信装置)、音频I/O装置547和/或数据存储装置548。数据存储装置548可存储可由处理器502和/或504执行的代码549。
在一些实施例中,本文中讨论的组件中的一个或多个能够实施为片上系统(SOC)装置。图6示出根据实施例的SOC封装的框图。如图6所示,SOC602包括一个或多个中央处理单元(CPU)核620、一个或多个图形处理器单元(GPU)核630、输入/输出(I/O)接口640以及存储器控制器642。SOC封装602的各种组件可耦合到例如本文参照其它附图讨论的互连或总线。此外,SOC封装602可包括更多或更少的组件,如本文参照其它附图讨论的那些。此外,SOC封装620的每个组件可包括一个或多个其它组件,例如,如本文参照其它附图讨论的。在一个实施例中,SOC封装602(及其组件)提供在例如封装到单个半导体装置的一个或多个集成电路(IC)管芯上。
如图6所示,SOC封装602经存储器控制器642耦合到存储器660(其可与本文参照其它附图讨论的存储器类似或相同)。在一实施例中,存储器660(或其一部分)能够集成在SOC封装602上。
I/O接口640可例如经如本文参照其它附图讨论的互连和/或总线耦合到一个或多个I/O装置670。I/O装置670可包括键盘、鼠标、触摸板、显示器、图像/视频捕捉装置(如照相机或摄像机/录像机)、触摸屏、扬声器等中的一项或更多项。此外,在一实施例中,SOC封装602可包括/集成完整性高速缓存202和/或二进制重写器逻辑/代码/模块214。备选地,项202或214的一项或更多项可提供在SOC封装602外(即,作为分立的逻辑/高速缓存)。
以下示例涉及另外的实施例。示例1包括一种设备,设备包括:用于存储非原生固件接口驱动程序的存储装置;以及用于响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序而将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑,其中用于将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑将在操作系统运行时间期间执行它的操作中的一个或多个操作。示例2包括示例1的设备,其中原生固件接口驱动程序将响应于检测到安全性策略违反或异常之一而被列入黑名单。示例3包括示例1的设备,包括用于将一个或多个处理器特定优化应用到原生固件接口驱动程序的逻辑。示例4包括示例1的设备,包括用于将一个或多个内联参考监视器应用到原生固件接口驱动程序的逻辑。示例5包括示例1的设备,包括用于将本地平台安全性策略应用到原生固件接口驱动程序的逻辑。示例6包括示例1的设备,包括用于响应于监视的动作的发生而将本地平台安全性策略应用到原生固件接口驱动程序的逻辑。示例7包括示例1的设备,其中用于将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑将在驱动程序执行环境中开始它的操作中的一个或多个操作。示例8包括示例1的设备,其中用于将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑将在驱动程序执行环境中以及在平台初始化期间开始它的操作中的一个或多个操作。示例9包括示例1的设备,其中用于将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑将在操作系统运行时间期间以及在后台中执行它的操作中的一个或多个操作。示例10包括示例1的设备,其中非原生固件接口驱动程序将包括根据统一可扩展固件接口(UEFI)的驱动程序。示例11包括示例1到10中的任一项的设备,其中存储装置、逻辑以及一个或多个处理器核在单个集成电路装置上。
示例12包括一种方法,方法包括:在存储装置中存储非原生固件接口驱动程序;以及响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序而将非原生固件接口驱动程序重写成原生固件接口驱动程序,其中将非原生固件接口驱动程序重写成原生固件接口驱动程序包括在操作系统运行时间期间执行的一个或多个操作。示例13包括示例12的方法,还包括响应于检测到安全性策略违反或异常之一而将所述原生固件接口驱动程序列入黑名单。示例14包括示例12的方法,还包括将一个或多个处理器特定优化应用到原生固件接口驱动程序。示例15包括示例12的方法,还包括将一个或多个内联参考监视器应用到原生固件接口驱动程序。示例16包括示例12的方法,还包括响应于监视的动作的发生,将本地平台安全性策略应用到原生固件接口驱动程序。示例17包括示例12的方法,其中将非原生固件接口驱动程序重写成原生固件接口驱动程序包括在驱动程序执行环境中开始一个或多个操作。示例18包括示例12的方法,其中将非原生固件接口驱动程序重写成原生固件接口驱动程序包括在驱动程序执行环境中以及在平台初始化期间开始一个或多个操作。示例19包括示例12的方法,其中将非原生固件接口驱动程序重写成原生固件接口驱动程序包括在操作系统运行时间期间以及在后台中执行一个或多个操作。示例20包括示例12的方法,其中非原生固件接口驱动程序包括根据统一可扩展固件接口(UEFI)的驱动程序。
示例21包括一种计算系统,计算系统包括:一个或多个处理器核;耦合到处理器核中的至少一个处理器核的存储器,用于存储非原生固件接口驱动程序;以及用于响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序而将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑,其中用于将非原生固件接口驱动程序重写成原生固件接口驱动程序的逻辑将在操作系统运行时间期间执行它的操作中的一个或多个操作。示例22包括示例21的系统,其中原生固件接口驱动程序将响应于检测到安全性策略违反或异常之一而被列入黑名单。示例23包括示例21的系统,包括用于将一个或多个处理器特定优化应用到原生固件接口驱动程序的逻辑。
示例24包括一种计算机可读媒体,计算机可读媒体包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行根据示例12到21任一项的一个或多个操作。示例25包括一种设备,设备包括用于执行示例12到21的任一项中阐述的方法的部件。示例26包括一种计算机可读媒体,计算机可读媒体包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以:在存储装置中存储非原生固件接口驱动程序;以及响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序而将非原生固件接口驱动程序重写成原生固件接口驱动程序,其中将非原生固件接口驱动程序重写成原生固件接口驱动程序包括在操作系统运行时间期间执行的一个或多个操作。示例27包括示例26的计算机可读媒体,还包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以响应于检测到安全性策略违反或异常之一而促使将原生固件接口驱动程序列入黑名单。示例28包括示例26的计算机可读媒体,还包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以促使将一个或多个处理器特定优化应用到原生固件接口驱动程序。示例29包括示例26的计算机可读媒体,还包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以促使将一个或多个内联参考监视器应用到原生固件接口驱动程序。示例30包括示例26的计算机可读媒体,还包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以响应于监视的动作的发生而促使将本地平台安全性策略应用到原生固件接口驱动程序。示例31包括示例26的计算机可读媒体,其中将非原生固件接口驱动程序重写成原生固件接口驱动程序包括在驱动程序执行环境中开始一个或多个操作。示例32包括示例26的计算机可读媒体,还包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以促使非原生固件接口驱动程序到原生固件接口驱动程序的重写包括在驱动程序执行环境中以及在平台初始化期间开始一个或多个操作。示例33包括示例26的计算机可读媒体,还包括一个或多个指令,指令在处理器上执行时,将处理器配置成执行一个或多个操作以促使非原生固件接口驱动程序到原生固件接口驱动程序的重写包括在操作系统运行时间期间以及在后台中执行一个或多个操作。示例34包括示例26的计算机可读媒体,其中非原生固件接口驱动程序包括根据统一可扩展固件接口(UEFI)的驱动程序。
在各种实施例中,本文例如参照图1-6所述的操作可实现为硬件(例如,逻辑电路)、软件、固件或其组合,其可提供为计算机程序产品,例如,包括在其上存储有用于对计算机进行编程以执行本文所述过程的指令(或软件进程)的有形(例如非暂时性)机器可读或计算机可读媒体。机器可读媒体可包括例如相对于图1-6讨论的那些的存储装置(例如包括ROM、RAM、闪速存储器、硬驱动器、固态驱动器等)。另外,此类计算机可读媒体可作为计算机程序产品下载,其中,程序可经通信链路(例如,总线、调制解调器或网络连接)通过载波或其它传播介质中提供的数据信号从远程计算机(例如,服务器)传输到请求计算机(例如,客户端)。说明书中对“一个实施例”或“一实施例”的引用意指结合该实施例所述的特定特征、结构和/或特性可包括在至少一个实现中。说明书中各个位置中短语“在一个实施例中”的出现可以全部指同一实施例或者可以不全部指同一实施例。此外,在说明书和权利要求书中,可使用术语“耦合”和“连接”及其衍生词。在一些实施例中,“连接”可用于指示两个或更多个元素相互直接物理接触或电接触。“耦合”可意指两个或更多个元素直接物理接触或电接触。然而,“耦合”也可意指两个或更多个元素可以不相互直接接触,但仍相互合作或交互。
因此,虽然已经以对于结构特征和/或方法动作特定的语言描述实施例,但要理解,所要求保护的主题可不限于所述的特定特征或动作。而是,特定的特征和动作公开作为实施所要求保护的主题的样本形式。

Claims (25)

1.一种设备,包括:
存储装置,用于存储非原生固件接口驱动程序;以及
逻辑,用于响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序而将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序,
其中用于将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序的逻辑将在操作系统运行时间期间执行它的操作中的一个或多个操作。
2.如权利要求1所述的设备,其中所述原生固件接口驱动程序将响应于检测到安全性策略违反或异常之一而被列入黑名单。
3.如权利要求1所述的设备,包括用于将一个或多个处理器特定优化应用到所述原生固件接口驱动程序的逻辑。
4.如权利要求1所述的设备,包括用于将一个或多个内联参考监视器应用到所述原生固件接口驱动程序的逻辑。
5.如权利要求1所述的设备,包括用于将本地平台安全性策略应用到所述原生固件接口驱动程序的逻辑。
6.如权利要求1所述的设备,包括用于响应于监视的动作的发生而将本地平台安全性策略应用到所述原生固件接口驱动程序的逻辑。
7.如权利要求1所述的设备,其中用于将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序的所述逻辑将在驱动程序执行环境中开始它的操作中的所述一个或多个操作。
8.如权利要求1所述的设备,其中用于将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序的所述逻辑将在所述驱动程序执行环境中以及在平台初始化期间开始它的操作中的所述一个或多个操作。
9.如权利要求1所述的设备,其中用于将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序的逻辑将在所述操作系统运行时间期间以及在后台中执行它的操作中的所述一个或多个操作。
10.如权利要求1所述的设备,其中所述非原生固件接口驱动程序将包括根据统一可扩展固件接口(UEFI)的驱动程序。
11.如权利要求1到10任一项所述的设备,其中所述存储装置、所述逻辑以及一个或多个处理器核在单个集成电路装置上。
12.一种方法,包括:
在存储装置中存储非原生固件接口驱动程序;以及
响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序,将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序,
其中将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序包括在操作系统运行时间期间执行的一个或多个操作。
13.如权利要求12所述的方法,还包括响应于检测到安全性策略违反或异常之一而将所述原生固件接口驱动程序列入黑名单。
14.如权利要求12所述的方法,还包括将一个或多个处理器特定优化应用到所述原生固件接口驱动程序。
15.如权利要求12所述的方法,还包括将一个或多个内联参考监视器应用到所述原生固件接口驱动程序。
16.如权利要求12所述的方法,还包括响应于监视的动作的发生而将本地平台安全性策略应用到所述原生固件接口驱动程序。
17.如权利要求12所述的方法,其中将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序包括在驱动程序执行环境中开始所述一个或多个操作。
18.如权利要求12所述的方法,其中将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序包括在所述驱动程序执行环境中以及在平台初始化期间开始所述一个或多个操作。
19.如权利要求12所述的方法,其中将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序包括在所述操作系统运行时间期间以及在后台中执行所述一个或多个操作。
20.如权利要求12所述的方法,其中所述非原生固件接口驱动程序包括根据统一可扩展固件接口(UEFI)的驱动程序。
21.一种计算系统,包括:
一个或多个处理器核;
耦合到所述处理器核中的至少一个处理器核的存储器,用于存储非原生固件接口驱动程序;以及
逻辑,用于响应于确定足够的空间在完整性高速缓存存储装置中可用以便存储原生固件接口驱动程序而将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序,
其中用于将所述非原生固件接口驱动程序重写成所述原生固件接口驱动程序的逻辑将在操作系统运行时间期间执行它的操作中的一个或多个操作。
22.如权利要求21所述的系统,其中所述原生固件接口驱动程序将响应于检测到安全性策略违反或异常之一而被列入黑名单。
23.如权利要求21所述的系统,包括用于将一个或多个处理器特定优化应用到所述原生固件接口驱动程序的逻辑。
24.一种包括一个或多个指令的计算机可读媒体,所述指令当在处理器上执行时,将所述处理器配置成执行如权利要求12到21任一项的一个或多个操作。
25.一种设备,包括用于执行如权利要求12到21任一项所述的方法的部件。
CN201380079814.2A 2013-10-24 2013-10-24 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 Active CN105556461B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/066608 WO2015060853A1 (en) 2013-10-24 2013-10-24 Techniques for pre-os image rewriting to provide cross-architecture support, security introspection, and performance optimization

Publications (2)

Publication Number Publication Date
CN105556461A true CN105556461A (zh) 2016-05-04
CN105556461B CN105556461B (zh) 2021-03-12

Family

ID=52993301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079814.2A Active CN105556461B (zh) 2013-10-24 2013-10-24 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术

Country Status (4)

Country Link
US (1) US9495177B2 (zh)
EP (1) EP3060980A4 (zh)
CN (1) CN105556461B (zh)
WO (1) WO2015060853A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113050998A (zh) * 2021-03-30 2021-06-29 联想(北京)有限公司 电子设备及控制方法
CN113918228A (zh) * 2021-09-15 2022-01-11 成都安恒信息技术有限公司 一种基于多cpu架构的内存文件系统启动方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016178681A1 (en) * 2015-05-06 2016-11-10 Hewlett Packard Enterprise Development Lp Pre-operating system content transmission
US11169841B2 (en) * 2020-03-17 2021-11-09 Internationl Business Machines Corporation Tunable power save loop for processor chips
US11507387B2 (en) 2020-05-26 2022-11-22 Dell Products L.P. Method to optimize system boot time of modules/driver's execution in UEFI pre-boot environment

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081890A (en) * 1998-11-30 2000-06-27 Intel Corporation Method of communication between firmware written for different instruction set architectures
EP1248193A1 (en) * 2001-04-02 2002-10-09 Hewlett-Packard Company Initialisation module for a device driver
US20050185472A1 (en) * 2004-02-05 2005-08-25 Research In Motion Limited Memory controller interface
CN101091163A (zh) * 2004-12-31 2007-12-19 英特尔公司 系统固件的可管理扩展机制
US20080270685A1 (en) * 2007-04-27 2008-10-30 Kabushiki Kaisha Toshiba Information processing apparatus and firmware updating method
US20090144046A1 (en) * 2007-09-28 2009-06-04 Rothman Michael A Method to encapsulate an option rom for operation in multiple firmware and platform architectures
CN101673210A (zh) * 2009-10-16 2010-03-17 苏州壹世通科技有限公司 基于可扩展固件接口的跨平台和跨处理器的方法和装置
WO2013101081A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Methods and apparatus for trusted boot optimization

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134007B2 (en) * 2003-06-30 2006-11-07 Intel Corporation Method for sharing firmware across heterogeneous processor architectures
US7181610B2 (en) 2003-10-07 2007-02-20 Intel Corporation Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
US8972964B2 (en) * 2012-07-26 2015-03-03 Unisys Corporation Dynamic firmware updating system for use in translated computing environments
US8752178B2 (en) * 2013-07-31 2014-06-10 Splunk Inc. Blacklisting and whitelisting of security-related events

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081890A (en) * 1998-11-30 2000-06-27 Intel Corporation Method of communication between firmware written for different instruction set architectures
EP1248193A1 (en) * 2001-04-02 2002-10-09 Hewlett-Packard Company Initialisation module for a device driver
US20050185472A1 (en) * 2004-02-05 2005-08-25 Research In Motion Limited Memory controller interface
CN101091163A (zh) * 2004-12-31 2007-12-19 英特尔公司 系统固件的可管理扩展机制
US20080270685A1 (en) * 2007-04-27 2008-10-30 Kabushiki Kaisha Toshiba Information processing apparatus and firmware updating method
US20090144046A1 (en) * 2007-09-28 2009-06-04 Rothman Michael A Method to encapsulate an option rom for operation in multiple firmware and platform architectures
CN101673210A (zh) * 2009-10-16 2010-03-17 苏州壹世通科技有限公司 基于可扩展固件接口的跨平台和跨处理器的方法和装置
WO2013101081A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Methods and apparatus for trusted boot optimization

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113050998A (zh) * 2021-03-30 2021-06-29 联想(北京)有限公司 电子设备及控制方法
CN113918228A (zh) * 2021-09-15 2022-01-11 成都安恒信息技术有限公司 一种基于多cpu架构的内存文件系统启动方法
CN113918228B (zh) * 2021-09-15 2023-10-13 成都安恒信息技术有限公司 一种基于多cpu架构的内存文件系统启动方法

Also Published As

Publication number Publication date
EP3060980A1 (en) 2016-08-31
EP3060980A4 (en) 2017-06-28
US9495177B2 (en) 2016-11-15
US20150212828A1 (en) 2015-07-30
WO2015060853A1 (en) 2015-04-30
CN105556461B (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
US8863109B2 (en) Updating secure pre-boot firmware in a computing system in real-time
US10860332B2 (en) Multicore framework for use in pre-boot environment of a system-on-chip
US9703346B2 (en) Firmware interface with backup non-volatile memory storage
US9335944B2 (en) In-place change between transient and persistent state for data structures on non-volatile memory
US11693466B2 (en) Application processor and system on chip
KR101707096B1 (ko) 일반 호스트 기반 제어기 레이턴시 방법 및 장치
US9996398B2 (en) Application processor and system on chip
CN105556461A (zh) 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
US11972243B2 (en) Memory device firmware update and activation without memory access quiescence
EP3161622A1 (en) Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology
EP3336696A1 (en) Implementing device models for virtual machines with reconfigurable hardware
US7310725B2 (en) Common platform pre-boot and run-time firmware services
JP2023020861A (ja) ファームウェアの更新
US10162616B2 (en) System for binary translation version protection
US11222119B2 (en) Technologies for secure and efficient native code invocation for firmware services
US20220012150A1 (en) Methods and apparatus to manage endpoint performance
US11106457B1 (en) Updating firmware runtime components
US11915029B2 (en) System and method of managing available memory of an information handling system
US20220155847A1 (en) Technologies for a processor to enter a reduced power state while monitoring multiple addresses
US20240028209A1 (en) Distributed region tracking for tiered memory systems
US20140181385A1 (en) Flexible utilization of block storage in a computing system
CN117130732A (zh) 一种设置接口启动项的方法、装置、设备及存储介质
WO2021021738A1 (en) Processing unit, processor, processing system, electronic device and processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant