CN113448505A - 用于实现固件数据的安全和弹性恢复的技术 - Google Patents

用于实现固件数据的安全和弹性恢复的技术 Download PDF

Info

Publication number
CN113448505A
CN113448505A CN202011477071.2A CN202011477071A CN113448505A CN 113448505 A CN113448505 A CN 113448505A CN 202011477071 A CN202011477071 A CN 202011477071A CN 113448505 A CN113448505 A CN 113448505A
Authority
CN
China
Prior art keywords
partition
address range
firmware data
copy
integrity verification
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
CN202011477071.2A
Other languages
English (en)
Inventor
卡鲁纳卡拉·科塔里
肖恩·达迪斯
迈克尔·库巴奇
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 CN113448505A publication Critical patent/CN113448505A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2084Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring on the same storage unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及用于实现固件数据的安全和弹性恢复的技术。系统、装置和方法可以提供一种技术,该技术将固件数据的第一副本从存储设备中的第一分区传导到存储设备中的第二分区,检测关于第一分区中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区自动地传导到第一分区。在一个示例中,固件数据定义固件代码的一个或多个设置。

Description

用于实现固件数据的安全和弹性恢复的技术
技术领域
实施例总体上涉及数据恢复。更具体地,实施例涉及一种实现固件数据的安全和弹性恢复的技术。
背景技术
固件代码(例如,有助于设备硬件的控制的低级指令)可以用于执行各种操作,例如,BIOS(基本输入/输出系统)、管理、嵌入式控制器(EC)和/或计算系统中的其他操作。固件代码通常具有定义固件代码的可编程方面的关联数据(例如,固件数据)。在操作期间,固件数据可能会从“出厂状态”随时间变化以反映固件代码的个性化执行。计算系统上的错误和/或有意攻击可能会要求恢复固件代码的受信任版本。在这种情况下,信息技术(IT)或原始设备制造商(OEM)专业人员可能会手动地将固件数据复原回出厂状态,这会导致成本增加、性能降低和/或消极的用户体验。
发明内容
根据本公开的第一实施例,提供了一种性能增强的计算系统,包括:非易失性存储设备,所述非易失性存储设备包括第一分区和第二分区;处理器;以及存储器,所述存储器包括可执行程序指令集,所述可执行程序指令集在由所述处理器执行时,使得所述处理器执行以下操作:将固件数据的第一副本从所述第一分区传导到所述第二分区,检测关于所述第一分区中的所述固件数据的恢复条件,以及响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区。
根据本公开的第二实施例,提供了一种半导体装置,包括:一个或多个衬底;以及耦合至所述一个或多个衬底的逻辑,其中,所述逻辑至少部分地实现在可配置逻辑或固定功能性硬件逻辑中的一个或多个中,耦合至所述一个或多个衬底的所述逻辑用于:将固件数据的第一副本从存储设备中的第一分区传导到所述存储设备中的第二分区;检测关于所述第一分区中的所述固件数据的恢复条件;以及响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区。
根据本公开的第三实施例,提供了一种操作性能增强的计算系统的方法,所述方法包括:将固件数据的第一副本从存储设备中的第一分区传导到所述存储设备中的第二分区;检测关于所述第一分区中的所述固件数据的恢复条件;以及响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区。
根据本公开的第四实施例,提供了一种半导体装置,包括:用于将固件数据的第一副本从存储设备中的第一分区传导到所述存储设备中的第二分区的设备;用于检测关于所述第一分区中的所述固件数据的恢复条件的设备;以及用于响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区的设备。
附图说明
通过阅读以下说明书和所附权利要求,并通过参考以下附图,实施例的各种优点对于本领域技术人员而言将变得显而易见,其中:
图1是根据实施例的恢复架构的示例的框图;
图2是根据实施例的镜像范围描述符区段(mirror range descriptor section)的示例的框图;
图3是根据实施例的在分区之间同步固件数据的方法的示例的流程图;
图4是根据实施例的在分区之间同步固件数据的更详细方法的示例的流程图;
图5是根据实施例的恢复固件数据的方法的示例的流程图;
图6是根据实施例的性能增强的计算系统的示例的框图;
图7是根据实施例的半导体装置的示例的图示;
图8是根据实施例的处理器的示例的框图;以及
图9是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
现在转到图1,示出了恢复架构10,其中,非易失性存储设备12(例如,闪存、串行外围接口NOR/SPINOR存储器、NAND存储装置)包含活动分区14(例如,连续的存储器单元区域)和镜像分区16(例如,连续的存储器单元区域)。通常,活动分区14用于存储固件代码和固件数据的工作副本。例如,固件代码可以包括存储在BIOS区域18中的BIOS固件(例如,统一的可扩展固件接口/UEFI指令)、存储在管理(例如,可管理性引擎/ME)区域20中的管理固件、存储在EC区域22中的EC固件等。在实施例中,固件数据定义了固件代码的一个或多个设置。在所示的示例中,BIOS数据28定义了BIOS区域18中的固件代码的设置(例如,启动首选项(preference)),管理数据30定义了管理区域20中的固件代码的设置(例如,远程访问首选项),EC数据32定义了EC区域22中的固件代码的设置(例如,低功率微控制器设置)等。活动分区14还可以包括网络区域17(例如,千兆以太网/GBE)。
如将更详细地讨论的,镜像分区16可以用于在活动分区14中存储固件数据的恢复副本。例如,第一镜像范围38可以存储BIOS数据28的恢复(例如,冗余)副本,第二镜像范围40可以存储管理数据30的恢复副本,第三镜像范围42可以存储EC数据32的恢复副本等。其他固件数据的恢复副本(诸如,计算安全引擎(CSE)、受信任平台模块(TPM)和/或主动管理技术(AMT)数据)也可以存储在镜像分区16中。如图所示,将固件数据的恢复副本存储在镜像分区16中提供了许多优点。例如,如果在架构10上检测到错误和/或有意攻击,则可以将固件数据与固件代码的受信任版本一起恢复。因此,可以避免将固件数据复原回出厂状态,这会导致成本降低、性能增强和/或更加积极的用户体验。附加地,由于工作和恢复代码与数据彼此隔离,因此提高了安全性。而且,可以通过将活动分区14和镜像分区16合并到同一存储设备12(例如,而不是单独的SPINOR设备)中来进一步实现成本节省。
在所示的示例中,计算管芯24包括多个计算处理器26(26a至26n)和安全处理器34。计算处理器26可以使用BIOS数据28来执行存储在BIOS区域18中的固件代码,并执行系统启动、平台设备和/或安全操作。在实施例中,安全处理器34使用管理数据30来执行存储在管理区域20中的固件代码。在一个示例中,安全处理器34还使用EC数据32来执行存储在EC区域22中的固件代码。实际上,安全处理器34可以执行CSE、TPM、AMT和/或其他固件代码以确保整体安全性。
所示的架构10还包括具有外围接口44(例如,串行外围接口/SPI、增强型SPI/eSPI)和安全处理器35的平台控制器管芯36(例如,平台控制器集线器/PCH、输入/输出模块/IOM),其也可以使用管理数据30来执行存储在管理区域20中的固件代码,并使用EC数据32来执行存储在EC区域22中的固件代码。实际上,安全处理器35可以执行CSE、TPM、AMT和/或其他固件代码以确保整体安全性。外围接口44可以包括镜像引擎46、寄存器接口48和镜像范围描述符区段(section)50。镜像范围38、40、42可以在可变长度描述符列表中被标识为对传统预先存在的SPI闪存描述符区域(例如,闪存描述符区域0-SPI闪存的前4KB)的扩展。例如,镜像范围描述符区段50可以驻留在数据结构的末尾处,诸如,下面的表I。
Figure BDA0002837518920000041
Figure BDA0002837518920000051
表I
继续参考图1和图2,全局SPI闪存描述符映射52可以包括到镜像范围描述符区段50的条目,其包含镜像范围描述符的可变长度列表(例如,列表长度取决于平台)。在实施例中,每个镜像范围描述符描述了活动范围闪存线性地址(FLA)、活动范围限制、镜像范围FLA和镜像范围限制。在其他实施例中,从镜像范围描述符中省略了镜像范围FLA和限制。
对活动范围和镜像范围38、40、42的所有闪存访问都可以遵循预先存在的支持,该支持定义了闪存主设备访问权限。附加地,可能禁止通过软件直接写入到镜像范围38、40、42。在实施例中,当映射到镜像范围38、40、42的活动区域接收到写入时,镜像范围38、40、42仅可由SPI闪存控制器硬件写入。
一种实现方式可以选择允许将硬件分配给镜像范围38、40、42,或者要求在描述符区段50中指定镜像范围38、40、42。在任一种情况下,活动范围都是指定的,并且所覆盖的范围不跨区域(例如,BIOS和聚合的安全性和管理引擎/CSME)。
在一个示例中,镜像范围描述符区段50在运行时是不可修改的,并且在初始化时被外围接口44消耗。因此,镜像引擎46可以自动地将写入到活动分区14中的区域18、20、22的数据复制到镜像分区16中的对应镜像区域。附加地,寄存器接口48可以在软件控制流中用于基于镜像范围描述符区段50与镜像引擎46交互。在实施例中,平台控制器管芯36还包括在实时时钟(RTC)阱中的多个寄存器56,其中,至少一个寄存器56是分区切换寄存器58(例如,状态寄存器)。因此,分区切换寄存器58可以用于触发(例如,响应于恢复条件,诸如,错误或恶意软件攻击)镜像分区16中的固件数据的恢复。固件数据恢复还可以经由平台控制器管芯36上的分区切换引脚60(例如,用户界面引脚)触发。
在实施例中,架构10还包括一个或多个平台设备62,诸如,嵌入式控制器64、基板管理控制器(BMC,未示出)或其他外部代理。所示的嵌入式控制器64包括监视计时器(Watchdog Timer,WDT)66,其也可以触发固件数据恢复。在这种情况下,嵌入式控制器64可以经由外部外围接口68和分区切换引脚60与平台控制器管芯36进行通信。
图3示出了在分区之间同步固件数据的方法70。方法70通常可以在镜像引擎(诸如,已经讨论过的镜像引擎46(图1))中实现。更具体地,方法70可以作为存储在机器或计算机可读存储介质(诸如,随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等)中的逻辑指令集而实现在以下各项中:一个或多个模块;可配置逻辑(诸如,可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD));使用电路技术(诸如,专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术)的固定功能性逻辑硬件,或其任何组合。
例如,用于执行方法70中所示操作的计算机程序代码可以以一种或多种编程语言的任何组合来写入,这些编程语言包括面向对象的编程语言(例如,JAVA、SMALLTALK、C++等)和常规过程编程语言(例如,“C”编程语言或类似编程语言)。此外,逻辑指令可以包括汇编器指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使电子电路和/或硬件固有的其他结构组件(例如,主机处理器、中央处理单元/CPU、微控制器等等)个性化的状态信息。
所示的处理框72允许将固件数据的第一副本从存储设备中的第一(例如,活动)分区传导到存储设备中的第二(例如,镜像)分区。如已经指出的,固件数据可以定义可执行固件代码的一个或多个设置,诸如,BIOS设置、管理设置、EC设置、安全设置等。此外,可以响应于将固件数据写入到第一分区来进行框72。在实施例中,框72包括:基于范围描述符来确定第二分区中用于固件数据的地址范围,其中,固件数据在第一副本期间被复制到第二分区中的地址范围。
框74检测关于第一分区中的固件数据的恢复条件。如已经指出的,恢复条件可以对应于错误(例如,由α粒子引起的闪存故障)、恶意固件更新等或其任何组合。在实施例中,恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。所示的框76允许响应于恢复条件而将固件数据的第二副本从第二分区传导到第一分区。
如图所示,将固件数据的恢复副本存储在第二分区中提供了许多优点。例如,如果在固件代码上检测到错误和/或有意攻击,则可以将固件数据与固件代码的受信任版本一起恢复。因此,可以避免将固件数据复原回出厂状态,这会导致成本降低、性能增强和/或更加积极的用户体验。
图4示出了在分区之间同步固件数据的更详细方法80。方法80通常可以在镜像引擎(诸如,已经讨论过的镜像引擎46(图1))中实现。更具体地,方法80可以作为存储在机器或计算机可读存储介质(诸如,RAM、ROM、PROM、固件、闪存等)中的逻辑指令集而实现在以下各项中:一个或多个模块;可配置逻辑(诸如,PLA、FPGA、CPLD);使用电路技术(诸如,ASIC、CMOS或TTL技术)的固定功能性逻辑硬件,或其任何组合。
所示的处理框82检测固件数据的写入,其中,框84在活动分区上的活动范围中更新固件数据。可以在框86处确定镜像范围是否与活动范围相关联。如果是,则框88将固件数据复制到镜像分区上。否则,方法80绕过框88,并且在框90处完成写入。
图5示出了恢复固件数据的方法100。方法100通常可以在镜像引擎(诸如,已经讨论过的镜像引擎46(图1))中实现。更具体地,方法100可以作为存储在机器或计算机可读存储介质(诸如,RAM、ROM、PROM、固件、闪存等)中的逻辑指令集而实现在以下各项中:一个或多个模块;可配置逻辑(诸如,PLA、FPGA、CPLD);使用电路技术(诸如,ASIC、CMOS或TTL技术)的固定功能性逻辑硬件,或其任何组合。
所示的处理框102在第二副本之前进行完整性验证。完整性验证可以包括:从第一分区中的第一地址范围检索固件数据;从第二分区中的第二地址范围检索固件数据;以及将第一分区中的固件数据与第二分区中的固件数据进行比较。如果固件数据的两个副本之间存在不一致(例如,不匹配),则可以进行进一步分析以自动地确定不一致是否是由于第一地址范围中的错误(例如,介质晶体管故障)、第二地址范围中的错误或一些其他源而引起的。因此,完整性验证还可以包括其他操作,诸如,校验和(checksum)操作等。
如果在框104处确定在第二地址范围中存在错误,则所示的框106绕过第二副本,并且所示的方法100终止。在这种情况下,固件代码的恢复可能会导致使用固件数据的出厂状态。如果在框104处确定在第二地址范围中不存在错误,则框108可以确定在第一地址范围中是否存在错误。如果是,则提供框110以绕过第二副本,其中,在框112处将第一地址范围映射到第二地址范围。因此,在所示的示例中,如果完整性验证在第一地址范围或第二地址范围中的一个或多个中检测到错误,则绕过第二副本。在实施例中,框112使用重映射表来自动地将对SPI闪存单元的访问映射到另一SPI闪存单元。因此,框112使得镜像分区的硬件能够替换活动分区中的有缺陷和/或有故障的硬件。可以在框114处生成警告通知(例如,以警告IT人员活动介质故障)。
如果在框108处确定在第一地址范围中不存在错误,则所示的框116响应于恢复条件而将固件数据的第二副本从第二分区传导到第一分区。因此,方法100通过确保所恢复的固件数据有效并且活动存储器范围可操作来进一步增强性能。
现在转到图6,示出了性能增强的计算系统151。系统151通常可以是具有以下功能性的电子设备/平台的一部分:计算功能性(例如,个人数字助理/PDA、笔记本计算机、平板计算机、可转换平板、服务器)、通信功能性(例如,智能电话)、成像功能性(例如,相机、摄录像机)、媒体播放功能性(例如,智能电视/TV)、可穿戴功能性(例如,手表、护目镜、头饰、鞋类、珠宝)、车辆功能性(例如,汽车、卡车、摩托车)、机器人功能性(例如,自主机器人)、物联网(IoT)功能性等或其任何组合。在所示的示例中,系统151包括具有耦合至系统存储器157的集成存储器控制器(IMC)155的主机处理器153(例如,中央处理单元/CPU)。
所示的系统151还包括输入输出(IO)模块159,该输入输出(IO)模块159与主机处理器153和图形处理器161(例如,图形处理单元/GPU)一起在半导体管芯163上实现为片上系统(SoC)。所示的IO模块159与例如显示器165(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器167(例如,有线和/或无线)以及大容量存储装置169(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪存、单头NAND存储装置、多头SPINOR或其他非易失性存储设备)进行通信。在一个示例中,大容量存储装置169包括第一分区150和第二分区152。
在实施例中,主机处理器153、图形处理器161和/或IO模块159执行从系统存储器157和/或大容量存储装置169中检索的指令171,以执行已经讨论过的方法70(图3)、方法80(图4)和/或方法100(图5)的一个或多个方面。因此,所示的指令171的执行可以使得计算系统151将固件数据的第一副本从第一分区150传导到第二分区152,检测关于第一分区150中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区152自动地传导到第一分区150。因此,计算系统151被认为至少在一定程度上是性能增强型的,即,固件数据是有弹性的并且从第二分区152安全地恢复,而无需将固件数据复原回出厂状态。计算系统151还消除了第二SPINOR存储固件数据的恢复副本的任何需要。
图7示出了半导体封装装置173。所示的装置173包括一个或多个衬底175(例如,硅、蓝宝石、砷化镓)和耦合至(一个或多个)衬底175的逻辑177(例如,晶体管阵列和其他集成电路/IC组件)。逻辑177可以至少部分地实现在可配置逻辑或固定功能性逻辑硬件中。在一个示例中,逻辑177实现了已经讨论过的方法70(图3)、方法80(图4)和/或方法100(图5)的一个或多个方面。因此,逻辑177可以将固件数据的第一副本从存储设备中的第一分区传导到存储设备的第二分区,检测关于第一分区中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区自动地传导到第一分区。因此,装置173被认为至少在一定程度上是性能增强型的,即,固件数据是有弹性的并且从第二分区安全地恢复,而无需将固件数据复原回出厂状态。
在一个示例中,逻辑177包括被定位(例如,嵌入)在(一个或多个)衬底175内的晶体管沟道区域。因此,逻辑177与(一个或多个)衬底175之间的界面可能不是突变结。逻辑177还可以视为包括在(一个或多个)衬底175的初始晶圆上生长的外延层。
图8示出了根据一个实施例的处理器核心200。处理器核心200可以是用于任何类型的处理器(例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器或用于执行代码的其他设备)的核心。尽管在图8中仅示出了一个处理器核心200,但是处理元件可以替代地包括一个以上的图8所示的处理器核心200。处理器核心200可以是单线程核心,或者对于至少一个实施例,处理器核心200可以是多线程的,因为它可以每个核心包括一个以上的硬件线程上下文(或“逻辑处理器”)。
图8还示出了耦合至处理器核心200的存储器270。存储器270可以是本领域技术人员已知或以其他方式可用的各种存储器(包括存储器层级的各个层)中的任一种。存储器270可以包括一个或多个代码213指令以由处理器核心200来执行,其中,代码213可以实现已经讨论过的方法70(图3)、方法80(图4)和/或方法100(图5)的一个或多个方面。处理器核心200遵循由代码213所指示的指令的程序序列。每个指令可以进入前端部分210,并且由一个或多个解码器220进行处理。解码器220可以随着其输出而生成微操作,例如预定格式的固定宽度微操作,或可以生成反映原始代码指令的其他指令、微指令或控制信号。所示前端部分210还包括寄存器重命名逻辑225和调度逻辑230,它们通常分配资源并且将与转换指令相对应的操作进行排队以供执行。
处理器核心200被示出为包括具有一组执行单元255-1至255-N的执行逻辑250。一些实施例可以包括专用于特定功能或功能集合的多个执行单元。其他实施例可以仅包括一个执行单元或可以执行特定功能的一个执行单元。所示的执行逻辑250执行由代码指令所指定的操作。
在完成执行由代码指令指定的操作之后,后端逻辑260使代码213的指令引退。在一个实施例中,处理器核心200允许无序执行,但要求指令的顺序引退。引退逻辑265可以采取如本领域的技术人员已知的多种形式(例如,重新排序缓存器等)。以这种方式,处理器核心200在代码213的执行期间至少在由解码器生成的输出、由寄存器重命名逻辑225利用的硬件寄存器和表格、以及由执行逻辑250修改的任何寄存器(未示出)方面被转换。
尽管图8中未示出,但是处理元件可以包括与处理器核心200一起在芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑以及处理器核心200。处理元件可以包括I/O控制逻辑,和/或可以包括与存储器控制逻辑集成在一起的I/O控制逻辑。处理元件还可以包括一个或多个缓存。
现在参考图9,示出了根据实施例的计算系统1000实施例的框图。在图9中示出了包括第一处理元件1070和第二处理元件1080的多处理器系统1000。虽然示出了两个处理元件1070和1080,但是应当理解,系统1000的实施例也可以仅包括一个这种处理元件。
系统1000被示出为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连件1050进行耦合。应当理解,图9所示的任何或所有的互连件可以实现为多分支总线,而非点对点互连件。
如图9所示,处理元件1070和1080中的每一者可以为多核心处理器,包括第一和第二处理器核心(即,处理器核心1074a和1074b以及处理器核心1084a和1084b)。这种核心1074a、1074b、1084a、1084b可以被配置为以类似于上文结合图8所讨论的方式来执行指令代码。
每个处理元件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。如图9中所示,MC 1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,这些存储器可以是本地附接到相应处理器的主存储器的部分。虽然MC 1072和1082被示出为集成到处理元件1070、1080中,但是对于替代实施例,MC逻辑可以是在处理元件1070、1080外部而不是集成在其中的分立逻辑。
第一处理元件1070和第二处理元件1080分别可以经由P-P互连件1076、1086耦合到I/O子系统1090。如图9中所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括接口1092以将I/O子系统1090与高性能图形引擎1038耦合。在一个实施例中,总线1049可以用来将图形引擎1038耦合到I/O子系统1090。或者,点对点互连件可以耦合这些组件。
继而,I/O子系统1090可以经由接口1096耦合到第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或诸如PCI高速总线(Express bus)或另一第三代I/O互连总线之类的总线,但是实施例的范围不限于此。
如图9中所示,各种I/O设备1014(例如,生物计量扫描仪、扬声器、相机、传感器)以及总线桥1018可以耦合至第一总线1016,该总线桥1018可以将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚计数(LPC)总线。在一个实施例中,各种设备可以耦合到第二总线1020,这些设备包括例如键盘/鼠标1012、(一个或多个)通信设备1026以及可以包括代码1030的数据存储单元1019(例如,磁盘驱动器或其他大容量存储设备)。所示的代码1030可以实现已经讨论过的方法70(图3)、方法80(图4)和/或方法100(图5)的一个或多个方面。另外,音频I/O 1024可以耦合到第二总线1020并且电池1010可以向计算系统1000供应电力。
需注意,可以想到其他实施例。例如,替代图9的点对点架构,系统可以实现多分支总线或另一种此类通信拓扑。另外,图9的元件可以替代地使用比图9所示更多或更少的集成芯片进行分区。
附加注释和示例:
示例1包括一种性能增强的计算系统,该性能增强的计算系统包括:非易失性存储设备,该非易失性存储设备包括第一分区和第二分区;处理器;以及存储器,该存储器包括可执行程序指令集,所述可执行程序指令集在由处理器执行时,使得处理器执行以下操作:将固件数据的第一副本从第一分区传导到第二分区,检测关于第一分区中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区自动地传导到第一分区。
示例2包括根据示例1所述的计算系统,其中,固件数据用于定义固件代码的一个或多个设置,并且其中,第一副本是响应于将固件数据写入到第一分区而传导的。
示例3包括根据示例1所述的计算系统,其中,指令在被执行时进一步使得处理器执行以下操作:基于范围描述符来确定第二分区中用于固件数据的地址范围,并且其中,固件数据在第一副本期间被复制到第二分区中的地址范围。
示例4包括根据示例1所述的计算系统,其中,恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
示例5包括根据示例1至4中任一项所述的计算系统,其中,指令在被执行时,进一步使得处理器执行以下操作:在第二副本之前进行完整性验证,其中,如果完整性验证未在第一分区中包含固件数据的第一地址范围或者第二分区中包含固件数据的第二地址范围中检测到错误,则传导第二副本,以及如果完整性验证在第一地址范围或第二地址范围中的一个或多个中检测到错误,则绕过第二副本。
示例6包括根据示例5所述的计算系统,其中,指令在被执行时,进一步使得处理器执行以下操作:如果完整性验证在第一地址范围中检测到错误,则将第一地址范围映射到第二地址范围,以及如果完整性验证在第一地址范围中检测到错误,则生成警告通知。
示例7包括一种半导体装置,该半导体装置包括一个或多个衬底和耦合至一个或多个衬底的逻辑,其中,该逻辑至少部分地实现在可配置逻辑或固定功能性硬件逻辑中的一个或多个中,耦合至一个或多个衬底的逻辑用于将固件数据的第一副本从存储设备中的第一分区传导到存储设备中的第二分区,检测关于第一分区中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区自动地传导到第一分区。
示例8包括根据示例7所述的半导体装置,其中,固件数据用于定义固件代码的一个或多个设置,并且其中,第一副本是响应于将固件数据写入到第一分区而传导的。
示例9包括根据示例7所述的半导体装置,其中,耦合至一个或多个衬底的逻辑用于:基于范围描述符来确定第二分区中用于固件数据的地址范围,并且其中,固件数据在第一副本期间被复制到第二分区中的地址范围。
示例10包括根据示例7所述的半导体装置,其中,恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
示例11包括根据示例7至10中任一项所述的半导体装置,其中,耦合至一个或多个衬底的逻辑用于:在第二副本之前进行完整性验证,其中,如果完整性验证未在第一分区中包含固件数据的第一地址范围或者第二分区中包含固件数据的第二地址范围中检测到错误,则传导第二副本,以及如果完整性验证在第一地址范围或第二地址范围中的一个或多个中检测到错误,则绕过第二副本。
示例12包括根据示例11所述的半导体装置,其中,耦合至一个或多个衬底的逻辑用于:如果完整性验证在第一地址范围中检测到错误,则将第一地址范围映射到第二地址范围,以及如果完整性验证在第一地址范围中检测到错误,则生成警告通知。
示例13包括根据示例7至12中任一项所述的半导体装置,其中,耦合至一个或多个衬底的逻辑包括晶体管沟道区域,该晶体管沟道区域位于一个或多个衬底内。
示例14包括至少一种计算机可读存储介质,包括可执行程序指令集,所述可执行程序指令集在由计算系统执行时,使得计算系统执行以下操作:将固件数据的第一副本从存储设备中的第一分区传导到存储设备中的第二分区,检测关于第一分区中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区自动地传导到第一分区。
示例15包括根据示例14所述的至少一种计算机可读存储介质,其中,固件数据用于定义固件代码的一个或多个设置,并且其中,第一副本是响应于将固件数据写入到第一分区而传导的。
示例16包括根据示例14所述的至少一种计算机可读存储介质,其中,指令在被执行时,进一步使得计算系统执行以下操作:基于范围描述符来确定第二分区中用于固件数据的地址范围,并且其中,固件数据在第一副本期间被复制到第二分区中的地址范围。
示例17包括根据示例14所述的至少一种计算机可读存储介质,其中,恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
示例18包括根据示例14至17中任一项所述的至少一种计算机可读存储介质,其中,指令在被执行时,进一步使得计算系统执行以下操作:在第二副本之前进行完整性验证,其中,如果完整性验证未在第一分区中包含固件数据的第一地址范围或者第二分区中包含固件数据的第二地址范围中检测到错误,则传导第二副本,以及如果完整性验证在第一地址范围或第二地址范围中的一个或多个中检测到错误,则绕过第二副本。
示例19包括根据示例18所述的至少一种计算机可读存储介质,其中,指令在被执行时,进一步使得计算系统执行以下操作:如果完整性验证在第一地址范围中检测到错误,则将第一地址范围映射到第二地址范围,以及如果完整性验证在第一地址范围中检测到错误,则生成警告通知。
示例20包括一种操作性能增强的计算系统的方法,该方法包括:将固件数据的第一副本从存储设备中的第一分区传导到存储设备中的第二分区,检测关于第一分区中的固件数据的恢复条件,以及响应于恢复条件而将固件数据的第二副本从第二分区自动地传导到第一分区。
示例21包括根据示例20所述的方法,其中,固件数据定义固件代码的一个或多个设置,并且第一副本是响应于将固件数据写入到第一分区而传导的。
示例22包括根据示例20所述的方法,还包括:基于范围描述符来确定第二分区中用于固件数据的地址范围,其中,固件数据在第一副本期间被复制到第二分区中的地址范围。
示例23包括根据示例20所述的方法,其中,恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
示例24包括根据示例20至23中任一项所述的方法,还包括:在第二副本之前进行完整性验证,其中,如果完整性验证未在第一分区中包含固件数据的第一地址范围或者第二分区中包含固件数据的第二地址范围中检测到错误,则传导第二副本,以及如果完整性验证在第一地址范围或第二地址范围中的一个或多个中检测到错误,则绕过第二副本。
示例25包括根据示例24所述的方法,还包括:如果完整性验证在第一地址范围中检测到错误,则将第一地址范围映射到第二地址范围,以及如果完整性验证在第一地址范围中检测到错误,则生成警告通知。
示例26包括用于执行根据示例20至24中任一项所述的方法的设备。
因此,本文描述的技术可以提供一种不需要重新供应的恢复系统。因此,在恢复操作之后,IT(信息技术)管理员可以继续不间断的远程支持。其他可能在丢失或损坏时保留的数据的示例包括CSE文件系统、UEFI变量(例如,安全启动状态和密钥)、软带(softstrap)、传感器校准数据、数据中心设置等。此外,可以在运行时使用存储在活动分区中的固件数据。针对数据中心用例,如果数据损坏,则控制逻辑可以在运行期间触发分区切换引脚并将镜像区域数据还原到活动分区。
实施例可适于与所有类型的半导体集成电路(“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.一种性能增强的计算系统,包括:
非易失性存储设备,所述非易失性存储设备包括第一分区和第二分区;
处理器;以及
存储器,所述存储器包括可执行程序指令集,所述可执行程序指令集在由所述处理器执行时,使得所述处理器执行以下操作:
将固件数据的第一副本从所述第一分区传导到所述第二分区,
检测关于所述第一分区中的所述固件数据的恢复条件,以及
响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区。
2.根据权利要求1所述的计算系统,其中,所述固件数据用于定义固件代码的一个或多个设置,并且其中,所述第一副本是响应于将所述固件数据写入到所述第一分区而传导的。
3.根据权利要求1所述的计算系统,其中,所述指令在被执行时进一步使得所述处理器执行以下操作:基于范围描述符来确定所述第二分区中用于所述固件数据的地址范围,并且其中,所述固件数据在所述第一副本期间被复制到所述第二分区中的所述地址范围。
4.根据权利要求1所述的计算系统,其中,所述恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
5.根据权利要求1至4中任一项所述的计算系统,其中,所述指令在被执行时,进一步使得所述处理器执行以下操作:
在所述第二副本之前进行完整性验证,其中,如果所述完整性验证未在所述第一分区中包含所述固件数据的第一地址范围或者所述第二分区中包含所述固件数据的第二地址范围中检测到错误,则传导所述第二副本,以及
如果所述完整性验证在所述第一地址范围或所述第二地址范围中的一个或多个中检测到错误,则绕过所述第二副本。
6.根据权利要求5所述的计算系统,其中,所述指令在被执行时,进一步使得所述处理器执行以下操作:
如果所述完整性验证在所述第一地址范围中检测到错误,则将所述第一地址范围映射到所述第二地址范围;以及
如果所述完整性验证在所述第一地址范围中检测到错误,则生成警告通知。
7.一种半导体装置,包括:
一个或多个衬底;以及
耦合至所述一个或多个衬底的逻辑,其中,所述逻辑至少部分地实现在可配置逻辑或固定功能性硬件逻辑中的一个或多个中,耦合至所述一个或多个衬底的所述逻辑用于:
将固件数据的第一副本从存储设备中的第一分区传导到所述存储设备中的第二分区;
检测关于所述第一分区中的所述固件数据的恢复条件;以及
响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区。
8.根据权利要求7所述的半导体装置,其中,所述固件数据用于定义固件代码的一个或多个设置,并且其中,所述第一副本是响应于将所述固件数据写入到所述第一分区而传导的。
9.根据权利要求7所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:基于范围描述符来确定所述第二分区中用于所述固件数据的地址范围,并且其中,所述固件数据在所述第一副本期间被复制到所述第二分区中的所述地址范围。
10.根据权利要求7所述的半导体装置,其中,所述恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
11.根据权利要求7至10中任一项所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:
在所述第二副本之前进行完整性验证,其中,如果所述完整性验证未在所述第一分区中包含所述固件数据的第一地址范围或者所述第二分区中包含所述固件数据的第二地址范围中检测到错误,则传导所述第二副本;以及
如果所述完整性验证在所述第一地址范围或所述第二地址范围中的一个或多个中检测到错误,则绕过所述第二副本。
12.根据权利要求11所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:
如果所述完整性验证在所述第一地址范围中检测到错误,则将所述第一地址范围映射到所述第二地址范围;以及
如果所述完整性验证在所述第一地址范围中检测到错误,则生成警告通知。
13.根据权利要求7至10中任一项所述的半导体装置,其中,耦合至所述一个或多个衬底的所述逻辑包括晶体管沟道区域,所述晶体管沟道区域位于所述一个或多个衬底内。
14.一种操作性能增强的计算系统的方法,所述方法包括:
将固件数据的第一副本从存储设备中的第一分区传导到所述存储设备中的第二分区;
检测关于所述第一分区中的所述固件数据的恢复条件;以及
响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区。
15.根据权利要求14所述的方法,其中,所述固件数据定义固件代码的一个或多个设置,并且所述第一副本是响应于将所述固件数据写入到所述第一分区而传导的。
16.根据权利要求14所述的方法,还包括:基于范围描述符来确定所述第二分区中用于所述固件数据的地址范围,其中,所述固件数据在所述第一副本期间被复制到所述第二分区中的所述地址范围。
17.根据权利要求14所述的方法,其中,所述恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
18.根据权利要求14至17中任一项所述的方法,还包括:
在所述第二副本之前进行完整性验证,其中,如果所述完整性验证未在所述第一分区中包含所述固件数据的第一地址范围或者所述第二分区中包含所述固件数据的第二地址范围中检测到错误,则传导所述第二副本;以及
如果所述完整性验证在所述第一地址范围或所述第二地址范围中的一个或多个中检测到错误,则绕过所述第二副本。
19.根据权利要求18所述的方法,还包括:
如果所述完整性验证在所述第一地址范围中检测到错误,则将所述第一地址范围映射到所述第二地址范围;以及
如果所述完整性验证在所述第一地址范围中检测到错误,则生成警告通知。
20.一种半导体装置,包括:
用于将固件数据的第一副本从存储设备中的第一分区传导到所述存储设备中的第二分区的设备;
用于检测关于所述第一分区中的所述固件数据的恢复条件的设备;以及
用于响应于所述恢复条件而将所述固件数据的第二副本从所述第二分区自动地传导到所述第一分区的设备。
21.根据权利要求20所述的半导体装置,其中,所述固件数据定义固件代码的一个或多个设置,并且所述第一副本是响应于将所述固件数据写入到所述第一分区而传导的。
22.根据权利要求20所述的半导体装置,还包括:用于基于范围描述符来确定所述第二分区中用于所述固件数据的地址范围的设备,其中,所述固件数据在所述第一副本期间被复制到所述第二分区中的所述地址范围。
23.根据权利要求20所述的半导体装置,其中,所述恢复条件是经由用户界面引脚或状态寄存器中的一个或多个来检测的。
24.根据权利要求20至23中任一项所述的半导体装置,还包括:
用于在所述第二副本之前进行完整性验证的设备,其中,如果所述完整性验证未在所述第一分区中包含所述固件数据的第一地址范围或者所述第二分区中包含所述固件数据的第二地址范围中检测到错误,则传导所述第二副本;以及
用于如果所述完整性验证在所述第一地址范围或所述第二地址范围中的一个或多个中检测到错误,则绕过所述第二副本的设备。
25.根据权利要求24所述的半导体装置,还包括:
用于如果所述完整性验证在所述第一地址范围中检测到错误,则将所述第一地址范围映射到所述第二地址范围的设备;以及
用于如果所述完整性验证在所述第一地址范围中检测到错误,则生成警告通知的设备。
CN202011477071.2A 2020-03-27 2020-12-15 用于实现固件数据的安全和弹性恢复的技术 Pending CN113448505A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/833,166 2020-03-27
US16/833,166 US11422896B2 (en) 2020-03-27 2020-03-27 Technology to enable secure and resilient recovery of firmware data

Publications (1)

Publication Number Publication Date
CN113448505A true CN113448505A (zh) 2021-09-28

Family

ID=71517610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011477071.2A Pending CN113448505A (zh) 2020-03-27 2020-12-15 用于实现固件数据的安全和弹性恢复的技术

Country Status (3)

Country Link
US (1) US11422896B2 (zh)
CN (1) CN113448505A (zh)
DE (1) DE102020134018A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111950014A (zh) * 2020-08-27 2020-11-17 英业达科技有限公司 服务器系统启动的安全度量方法、安全度量装置及服务器
US11847226B1 (en) * 2020-11-25 2023-12-19 American Megatrends International, Llc Baseboard Management Controller (BMC)-based security processor
US20220398320A1 (en) * 2021-06-14 2022-12-15 Dell Products, L.P. Data sharing system and method for a multi-boot baseboard management controller (bmc)
US11829248B2 (en) * 2021-09-23 2023-11-28 Dell Products L.P. Firmware recovery by image transfusion

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182187B1 (en) * 1993-04-07 2001-01-30 Compaq Computer Corporation System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
JP2000173289A (ja) * 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
US6757838B1 (en) * 2000-10-13 2004-06-29 Hewlett-Packard Development Company, L.P. Hardware independent implementation of computer system BIOS recovery
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
TW200532556A (en) * 2004-03-19 2005-10-01 Hon Hai Prec Ind Co Ltd A system and method for updating programs in the BIOS
GB2472051B (en) * 2009-07-22 2012-10-10 Wolfson Microelectronics Plc Power management apparatus and methods
CN102298545B (zh) * 2011-08-23 2014-03-19 晨星软件研发(深圳)有限公司 一种系统启动引导处理方法及装置
US10621351B2 (en) * 2016-11-01 2020-04-14 Raptor Engineering, LLC. Systems and methods for tamper-resistant verification of firmware with a trusted platform module
US10740084B2 (en) 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
US10922071B2 (en) * 2019-03-13 2021-02-16 Quanta Computer Inc. Centralized off-board flash memory for server devices
US11144328B2 (en) * 2020-02-03 2021-10-12 Dell Products L.P. System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME)
US20210240831A1 (en) * 2020-02-03 2021-08-05 Dell Products L.P. Systems and methods for integrity verification of secondary firmware while minimizing boot time

Also Published As

Publication number Publication date
US20200226028A1 (en) 2020-07-16
DE102020134018A1 (de) 2021-09-30
US11422896B2 (en) 2022-08-23

Similar Documents

Publication Publication Date Title
US11556327B2 (en) SOC-assisted resilient boot
US11422896B2 (en) Technology to enable secure and resilient recovery of firmware data
US11875147B2 (en) Firmware component with self-descriptive dependency information
CN107667373B (zh) 安全受信执行环境数据存储
US20210089411A1 (en) Restoring persistent application data from non-volatile memory after a system crash or system reboot
WO2020118502A1 (en) Runtime post package repair for memory
US10180800B2 (en) Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
CN113254086A (zh) Bios到操作系统的数据交换的部署
US10896142B2 (en) Non-volatile memory out-of-band management interface for all host processor power states
US11544129B2 (en) Cross-component health monitoring and improved repair for self-healing platforms
CN113348447A (zh) 用于确定是否对存储器系统进行信号训练的选择裕度测试
WO2021232396A1 (en) Accelerating system boot times via host-managed device memory
WO2021168601A1 (en) Implementing external memory training at runtime
WO2022099531A1 (en) Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules
WO2021196065A1 (en) Technology to automatically conduct speed switching in processor links without warm resets
JP7517772B2 (ja) 性能強化コンピューティングシステム、半導体基板、コンピュータプログラム、及び、性能強化コンピューティングシステムを操作するための方法
CN114064198A (zh) 经由os接口表的单numa域内的多虚拟numa域
US20190101965A1 (en) Os visibility into system states that cause delays and technology to achieve deterministic latency
CN113297100A (zh) 用于确保足够的寄存器完整缓存复杂存储器配置的技术

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination