CN110998578A - 用于在异构存储器环境内进行引导的系统和方法 - Google Patents

用于在异构存储器环境内进行引导的系统和方法 Download PDF

Info

Publication number
CN110998578A
CN110998578A CN201880053279.6A CN201880053279A CN110998578A CN 110998578 A CN110998578 A CN 110998578A CN 201880053279 A CN201880053279 A CN 201880053279A CN 110998578 A CN110998578 A CN 110998578A
Authority
CN
China
Prior art keywords
software application
determining
memory mode
enhanced memory
nvram
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
CN201880053279.6A
Other languages
English (en)
Other versions
CN110998578B (zh
Inventor
Y·李
A·托兹尼
D·全
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN110998578A publication Critical patent/CN110998578A/zh
Application granted granted Critical
Publication of CN110998578B publication Critical patent/CN110998578B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/44557Code layout in executable memory
    • 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/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • 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/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

本文描述了用于以增强存储器模式来引导片上系统(SOC)的系统和方法。在一个方面,可以读取增强存储器模式指示符以创建到非易失性随机存取存储器(NVRAM)的可信信道。NVRAM可以逻辑地连接到SOC。在一方面,可以在创建可信信道之前保护NVRAM。一旦到NVRAM的安全信道被创建,则SOC可以以增强存储器模式操作。在SOC断电之前,系统可以存储指示符,该指示符可操作以用于以功率节省模式启用对SOC的后续引导。SOC可以是可操作以用于取决于其中实现SOC的便携式计算设备的操作要求而在功率节省模式与正常模式之间切换的。

Description

用于在异构存储器环境内进行引导的系统和方法
相关申请
本申请要求于2017年8月23日提交的、题为“System And Method For BootingWithin A Heterogeneous Memory”的美国临时申请第62/549,057号的优先权的利益,其全部内容通过引用并入本文。
背景技术
许多便携式计算设备由复杂的片上系统(SOC)供电,复杂的片上系统中的许多包含与设备的使用和操作相关的各种逻辑块和功能块。这样的便携式计算设备可能具有功率约束,这些功率约束使得某些用例由于与功率相关的需求而不可行。例如,许多便携式计算设备(例如,智能电话)以固定电池来操作,该固定电池具有与容量和峰值输出两者相关的物理限制。为了处理用户对便携式计算设备的不断增长的性能需求,必须开发创新方法以在不超过便携式计算设备的功率约束的情况下适应用户性能需求。用户要求卓越设备性能的一个示例是关于设备引导的时延,无论是初始引导还是后续引导(有时称为重启或唤醒)。
利用不受限的资源,设计只具有前沿组件的便携式计算设备是可能的,所有这些前沿组件提供最佳性能和功率。然而,当前市场要求便携式计算设备制造商在采用成本高效的电子组件与同时关于功率和性能仍然提供充足的用户体验之间找到平衡。随着非易失性随机存取存储器(NVRAM)的不断发展,一些便携式计算设备制造商正在寻求在系统内利用NVRAM的优点,该系统在整个SOC中使用更多传统组件。由于NVRAM比其他现有的RAM架构相对新,因此,要在整个设备中使用,NVRAM的成本可能成本过高。此外,NVRAM的特性可能不适合在未来的所有便携式计算设备中普遍使用。例如,NVRAM的一个潜在缺点是存储在NVRAM内的数据可能需要附加的安全性,因为数据可能在设备已经断电后保留。
因此,需要用于在便携式计算设备内提供对NVRAM的选择性使用的改进的系统和方法,使得便携式计算设备的操作提供令人满意的用户体验,而不会不利地影响制造便携式计算的成本。此外,NVRAM关于引导的使用可以关于与便携式计算设备相关的功率和性能改进用户体验。
发明内容
本文描述了用于以增强存储器模式(例如,功率节省模式等)引导片上系统(SOC)的系统和方法。该系统和方法可以包括读取增强存储器模式指示符,创建到非易失性随机存取存储器(NVRAM)的可信信道,其中NVRAM逻辑地连接到SOC。此外,可以在创建可信信道之前保护NVRAM。然后,SOC可以以增强存储器模式操作并且存储指示符,该指示符可操作以用于以功率节省模式启用对SOC的后续引导(例如,重新引导)。在一个方面,增强存储器模式指示符(或功率节省模式指示符)是存储在功率管理控制器中的标志。在另一方面,功率节省模式指示符可以从SOC外部的设备发送到SOC。
在一个方面,该系统和方法可以接收异常,其中异常指示SOC可以退出功率节省模式并且以正常模式操作。在另一方面,可信引导程序可以安全地确定功率节省模式指示符的存在。在又一方面,SOC以功率节省模式进行操作还可以包括将软件映像从存储存储器加载到NVRAM中的操作,其中软件映像被配置为在NVRAM内执行。在又一方面,软件映像可以是存储在存储设备上的多个软件映像的子集,并且多个软件映像可以提供与以功率节省模式操作的软件映像相比实质上可替代的功能。在另一方面,处理器可以在系统内执行该方法。本领域技术人员将认识到,处理器可以是数字信号处理器(DSP)、图形处理单元(GPU)、中央处理单元(CPU)或专用集成电路(ASIC)。此外,该系统和方法可以包含在便携式计算设备内,该便携式计算设备包括在SOC自身内和在SOC自身外的若干逻辑的和物理的功能块。
各种方面可以包括一种操作计算系统/设备(例如,SOC)的方法,该方法可以包括:确定软件应用程序是否为增强存储器模式的候选者;响应于确定软件应用程序是增强存储器模式的候选者,将软件应用程序加载到NVRAM中,并且将增强存储器模式指示符置位,增强存储器模式指示符可操作以用于以增强存储器模式启用对该计算设备的后续引导;在重新引导该计算设备之后,确定增强存储器模式指示符是否被置位;以及响应于确定增强存储器模式指示符被置位,通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作该计算设备。在一方面,该方法可以包括:响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器(例如,DRAM、SRAM等)中,以及响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行。
在另一方面,确定软件应用程序是否为增强存储器模式的候选者可以包括:对软件应用程序进行评估以生成评估结果,基于评估结果来确定软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,以及响应于确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行而确定软件应用程序是增强存储器模式的候选者。
在另一方面,确定软件应用程序是否为增强存储器模式的候选者可以包括:确定软件应用程序的大小值,确定软件应用程序的功率消耗值,确定软件应用程序的引导时间值,基于大小值、功率消耗值以及引导时间值来确定费用度量值,确定费用度量值是否超过阈值,响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者,以及响应于确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者。
在另一方面,该方法可以包括:识别多个候选软件应用程序;将所识别的软件应用程序中的每个所识别的软件应用程序分类到一个或多个类别中;基于与所识别的软件应用程序中的每个所识别的软件应用程序相关联的一个或多个类别,确定每个所识别的软件应用程序的价值值;以及基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值,将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中,其中,确定软件应用程序是否为增强存储器模式的候选者可以包括:基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者。
在另一方面,基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中可以包括:将所识别的软件应用程序插入候选软件应用程序的有序列表中,候选软件应用程序的有序列表基于所识别的软件应用程序的相关联的价值值来组织所识别的软件应用程序。在另一方面,基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中可以包括:确定与所识别的软件应用程序相关联的价值值是否超过阈值,以及响应于确定与所识别的软件应用程序相关联的价值值超过阈值而将所识别的软件应用程序插入候选软件应用程序的列表中。
在另一方面,基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者可以包括:确定软件应用程序是否被包括在候选软件应用程序的列表中。在另一方面,将可操作以用于以增强存储器模式启用对该计算设备的后续引导的增强存储器模式指示符置位可以包括:将标志存储在非易失性存储器中。在另一方面,将可操作以用于以增强存储器模式启用对该计算设备的后续引导的增强存储器模式指示符置位可以包括将以下各项中的一项置位:低功率模式指示符,快速引导时间模式指示符,快速状态转换模式指示符,或者高速执行模式指示符。
在另一方面,在重新引导该计算设备之后确定增强存储器模式指示符是否被置位可以包括:执行可信引导程序以安全地确定增强存储器模式指示符的存在。在另一方面,该方法可以包括将增强存储器模式指示符从该计算设备的片上系统外部的组件发送到片上系统。在另一方面,该方法可以包括接收指示该计算设备应退出增强存储器模式的异常,以及响应于接收到异常而以非增强存储器模式操作该计算设备。
在另一方面,将软件应用程序加载到NVRAM中可以包括将软件映像从存储存储器加载到NVRAM中,该软件映像被配置为在NVRAM内执行。
在另一方面,该方法可以包括将软件应用程序划分为多个软件映像,其中,将软件应用程序加载到NVRAM中可以包括将多个软件映像的子集加载到NVRAM中。
在另一方面,该方法可以包括识别多个软件映像中的、将从与NVRAM中的执行相关联的改进中受益最多的软件映像,其中,将多个软件映像的子集加载到NVRAM中可以包括:将所识别的软件映像加载到NVRAM中。
另外的方面可以包括一种计算设备,该计算设备包括NVRAM以及耦合到NVRAM的处理器,其中,处理器可以配置有处理器可执行指令以执行操作,该操作可以包括:确定软件应用程序是否为增强存储器模式的候选者;响应于确定软件应用程序是增强存储器模式的候选者,将软件应用程序加载到NVRAM中,并且将增强存储器模式指示符置位,增强存储器模式指示符可操作以用于以增强存储器模式启用对该计算设备的后续引导;在重新引导该计算设备之后,确定增强存储器模式指示符是否被置位;以及响应于确定增强存储器模式指示符被置位,通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作该计算设备。在一方面,处理器可以配置有处理器可执行指令以执行操作,该操作还包括:响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器中,以及响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行。
在另一方面,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:确定软件应用程序的大小值,确定软件应用程序的功率消耗值,确定软件应用程序的引导时间值,基于大小值、功率消耗值以及引导时间值来确定费用度量值,确定费用度量值是否超过阈值,响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者,以及响应于确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者。
另外的方面可以包括一种计算设备,该计算设备包括:用于确定软件应用程序是否为增强存储器模式的候选者的单元;用于响应于确定软件应用程序是增强存储器模式的候选者而将软件应用程序加载到NVRAM中并且将增强存储器模式指示符置位的单元,增强存储器模式指示符可操作以用于以增强存储器模式启用对该计算设备的后续引导;用于在重新引导计算设备之后确定增强存储器模式指示符是否被置位的单元;以及用于响应于确定增强存储器模式指示符被置位而通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作该计算设备的单元。在一方面,该计算设备可以包括用于响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器中的单元,以及用于响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行的单元。
在另一方面,用于确定软件应用程序是否为增强存储器模式的候选者的单元可以包括:用于确定软件应用程序的大小值的单元,用于确定软件应用程序的功率消耗值的单元,用于确定软件应用程序的引导时间值的单元,用于基于大小值、功率消耗值以及引导时间值来确定费用度量值的单元,用于确定费用度量值是否超过阈值的单元,用于响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者的单元,以及用于响应于确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者的单元。
附图说明
并入本文并构成本说明书的一部分的附图示出了权利要求的示例性实施例,并且与上面给出的总体描述和下面给出的详细描述一起用于解释权利要求的特征。
图1示出了可操作以用于以正常模式或增强存储器模式被引导的系统的框图。
图2是示出根据实施例的对被制造为包含SOC和NVRAM的计算设备进行初始化的方法的过程流程图。
图3是示出根据实施例的提供对NVRAM的安全存取的方法的过程流程图。
图4A是描绘存储存储器数据的逻辑关系的框图。
图4B是描绘RAM数据的逻辑关系的框图。
图4C是描绘NVRAM数据的逻辑关系的框图。
图5是示出根据实施例的以正常模式引导SOC的方法的过程流程图。
图6是示出根据实施例的以增强存储器模式引导SOC的方法的过程流程图。
图7是示出根据各种实施例的以增强存储器模式智能地操作的方法的过程流程图。
图8是用于包含本文描述的系统和方法的便携式计算设备的方面的框图。
具体实施方式
将参考附图来详细描述各种实施例。无论任何可能情况下,在整个附图中将使用相同的附图标记来指代相同或相似的部分。对特定示例和实现方式的参考出于说明性目的,并且不旨在限制权利要求的范围。
术语“移动设备”、“移动计算设备”和“便携式计算设备”在本文中可以用于指代以下各项中的任何一项或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、智能本、上网本、超级本、掌上电脑、无线电子邮件接收器、具有多媒体互联网能力的蜂窝电话、无线游戏控制器、物联网(IoT)设备、可穿戴设备、手持式计算机以及包括可编程处理器、存储器和/或通信电路的类似的个人电子设备,该通信电路用于经由有线或无线的通信链路或技术来发送和接收信息。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“引擎”等旨在包括计算机相关的实体,例如但不限于硬件、固件、硬件和软件的组合、软件或执行中的软件,其被配置为执行特定的操作或功能。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备两者都可以被称为组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个处理器或核心上和/或分布在两个或更多个处理器或核心之间。另外,这些组件可以从其上存储有各种指令和/或数据结构的各种非暂时性计算机可读介质执行。组件可以通过本地进程和/或远程进程、函数或过程调用、电子信号、数据分组、存储器读取/写入以及其他已知的网络、计算机、处理器和/或进程相关的通信方法进行通信。
术语“片上系统”(SOC)在本文中用于指代包含集成在单个基板上的多个资源、处理器和/或处理核心的单个集成电路(IC)芯片。单个SOC可以包含用于数字、模拟、混合信号和射频功能的电路。单个SOC还可以包括任何数量的通用和/或专用处理器(数字信号处理器、调制解调器处理器、视频处理器等)、存储器区块(例如,ROM、RAM、闪存等)和资源(例如,定时器、电压调节器、振荡器等)。SOC还可以包括用于控制集成资源和处理器以及用于控制外围设备的软件。
多种不同类型的存储器和存储器技术将来可用或设想,这些存储器和存储器技术中的任何一种或全部可以包括在实现各种实施例的系统和计算设备中并且在实现各种实施例的系统和计算设备中使用。这样的存储器技术/类型可以包括非易失性随机存取存储器(NVRAM),例如,磁阻RAM(M-RAM)、电阻随机存取存储器(ReRAM或RRAM)、相变随机存取存储器(PC-RAM、PRAM或PCM)、铁电RAM(F-RAM)、自旋移矩磁阻随机存取存储器(STT-MRAM)和三维交叉点(3D-XPOINT)存储器。这样的存储器技术/类型还可以包括非易失性或只读存储器(ROM)技术,例如,可编程只读存储器(PROM)、现场可编程只读存储器(FPROM)、一次性可编程非易失性存储器(OTP NVM)。这样的存储器技术/类型还可以包括易失性随机存取存储器(RAM)技术,例如,动态随机存取存储器(DRAM)、双倍数据速率(DDR)同步动态随机存取存储器(DDR SDRAM)、静态随机存取存储器(SRAM)和伪静态随机存取存储器(PSRAM)。实现各种实施例的系统和计算设备还可以包括或使用电子(固态)非易失性计算机存储介质,例如,FLASH存储器。上面提及的存储器技术中的每个包括例如适合于存储用于在计算机或其他数字电子设备中使用或由计算机或其他数字电子设备使用的指令、程序、控制信号和/或数据的元件。对与单独类型的存储器、接口、标准或存储器技术相关的术语和/或技术细节的任何引用仅用于说明目的,而并不旨在将权利要求的范围限制于特定存储器系统或技术,除非以权利要求语言明确地引述。
计算机存储器的性能、安全性和功率消耗特性对于工程师和电子制造商而言是重要的设计标准。例如,便携式计算设备存取和使用存储在其各种类型的存储器中的信息所要求的存取时间可能对设备的响应性和可用性具有显着影响。另外,便携式计算设备用户现在通常使用其设备来存储敏感信息(例如,信用卡信息、联系人等)和/或完成安全性很重要的任务。例如,便携式计算设备用户现在经常使用其设备来购买商品,发送和接收敏感通信,支付账单,管理银行账户以及进行其他敏感交易。这些交易往往要求计算设备以安全的方式存储对窃贼和恶意行为者具有高价值的敏感或机密信息。出于这些原因,在不消耗大量的计算设备的处理资源或电池资源的情况下保护存储在计算设备的存储器中的信息变得越来越重要。
窃贼或恶意行为者可能物理地解构计算设备和/或其SOC,移除其内部或外部存储器以及从这些存储器中恢复敏感信息。安全解决方案可以尝试通过对存储在计算设备的存储器中的所有信息进行加密来防止这种攻击。然而,加密计算设备中的所有存储器的全部内容并且每次使用信息时对信息进行解密可能消耗大量的该设备的处理资源和电池资源。在诸如便携式计算设备之类的资源受限系统中,这种广泛的加密/解密操作可能使设备在相当长的时间段内无响应或不可用或以其他方式使用户体验降级。
为了平衡性能、功率消耗以及安全性之间的折衷,现代计算设备仅对诸如ROM或FLASH存储器之类的存储存储器的内容进行加密。也就是说,由于DRAM和SRAM存储器要求电力来存储和保留数据,因此存储在这些存储器中的信息典型地在计算设备断电后几微秒消失。因此,窃贼和恶意行为者无法在信息消失之前解构设备以提取信息。
由于DRAM和SRAM存储器的这些特性和其他特性,现代计算设备典型地不对存储在DRAM和SRAM存储器中的大量的信息进行编码。另外,DRAM和SRAM存储器具有高速读取-写入特性(即,短存取时间),并且典型地用于对执行代码的临时存储或用于受益于高速的读取和写入操作的其他操作。对这样的存储器的内容进行加密和解密对于每个读取/写入操作而言花费时间,并且因此可能消极地影响计算设备的性能和响应性。
与DRAM和SRAM存储器不同,NVRAM存储器是即使电源关闭时也保留数据的随机存取存储器。然而,与DRAM和SRAM存储器一样,NVRAM存储器具有高速读取-写入特性(即,短存取时间)。因此,使用NVRAM存储器允许计算设备受益于随机存取存储器的高速读取-写入特性以及ROM或存储存储器的信息保持特性两者。NVRAM具有优于DRAM和SRAM存储器的益处,因为不需要周期性地刷新存储器,这节省了功率。然而,NVRAM存储器制造昂贵并且典型地具有比DRAM和SRAM存储器小得多的存储容量。另外,因为NVRAM存储器保留数据,所以存储在NVRAM存储器中的信息要求加密和/或其他类似的安全措施。否则,窃贼或恶意行为者可能解构设备,移除NVRAM存储器以及提取其上包含的信息。出于这些原因,一组不同的安全协议适用于NVRAM而非DRAM或SRAM。
FLASH存储器是可擦除且可重新编程的ROM或存储存储器。FLASH存储器是非易失性的,因为其在电源关闭时保留数据。然而,与NVRAM技术不同,FLASH存储器不是真正的随机存取存储器。FLASH存储器不是位可寻址的,并且要求计算设备以大的区块进行读取和写入。另外,读取或写入FLASH存储器是比读取或写入NVRAM存储器慢得多的操作。此外,由于FLASH存储器中要求的大的区块大小,对FLASH存储器的内容进行加密是相对慢的操作,其可能消耗计算设备的大量可用的处理资源和功率资源。
各种实施例包括被配置为实现以下方法的方法和计算系统:用于安全且智能地利用NVRAM存储器来进行快速启动、快速状态改变、低功率设备操作以及高速代码执行。
计算设备处理器可以被配置为:通过从存储存储器(例如,ROM、FLASH等)读取软件应用程序,解密程序,解压缩程序以及将经解密且经解压缩的程序的副本加载到易失性存储器(例如,DRAM)中,以非增强存储器模式(或正常模式)操作。然后,计算设备处理器可以将控制转移到程序计数器,该程序计数器使用处理器来开始从易失性存储器执行代码。
与从NVRAM执行相同代码相比,从易失性存储器执行代码花费更长时间并且消耗更多功率。因此,在一些实施例中,计算设备处理器可以被配置为使用NVRAM以增强存储器模式(例如,功率节省模式、高速执行模式等)安全地操作,这改进程序或设备的引导时间、状态转换速度、执行时间和/或功率消耗特性。在一些实施例中,计算设备处理器可以被配置为通过将标志或寄存器值置位而使得在下一阶段、循环、重新引导或启动中发生快速引导、低功率操作、高速执行等来转换到增强存储器模式。
在一些实施例中,计算设备处理器可以被配置为检测NVRAM的特性将对其有益的程序、操作或条件,转换为在有限时间内以利用NVRAM的增强存储器模式操作,以及针对其他操作转换回正常模式(或非增强存储器模式)。如本文所使用的,术语“增强存储器模式”指代其中可执行代码存储在NVRAM中,维持在NVRAM中和/或从NVRAM执行以改进计算设备的操作(例如,提供功率节省、更快的操作和/或低时延引导)的操作模式。通过在有限时间内以利用NVRAM的增强存储器模式操作,并且针对更多例行操作转换回正常模式,处理器可以智能地利用有限的NVRAM资源并且确保足够的NVRAM资源仍然可用于其他用途。在整个说明书中例如参考图6和图7描述了增强存储器模式的示例。
在一些实施例中,计算设备处理器可以被配置为探查/评估当前和/或下一操作程序以确定系统或程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行。计算设备处理器可以确定程序是否适合可用的NVRAM存储容量。计算设备处理器可以响应于确定程序将受益于低功率设备操作或高速代码执行并且程序可能适合可用的NVRAM存储容量而将程序加载到可用NVRAM中。然后,计算设备处理器可以通过将控制转移到适当的程序计数器来从NVRAM执行程序。
例如,可穿戴计算设备(例如,手表等)中的处理器可以评估计步器软件应用以确定应用从计步器读取信息,进入睡眠状态,并且然后每100毫秒唤醒以从计步器读取附加信息或更新的信息。基于该评估,处理器可以确定进入和退出睡眠状态的操作消耗大量的设备的有限电池资源来将指令重新加载到DRAM中(例如,不仅仅是用于从计步器读取信息的操作等),和/或计步器应用否则将受益于快速引导和低功率设备操作。然后,处理器可以确定可供使用的NVRAM的量,确定计步器应用可能适合可用的NVRAM存储容量,将计步器应用加载到可用NVRAM中,以及从NVRAM执行应用。在该示例中,从NVRAM执行应用通过改进可穿戴计算设备的引导时间并且降低其功率消耗来改进可穿戴计算设备的性能和运转。
在一些实施例中,计算设备处理器可以确定将受益于快速启动(或快速状态改变、低功率设备操作、高速代码执行等)的程序不能适合可用的NVRAM存储容量。作为响应,计算设备处理器可以将程序划分为映像部分,识别将最受益于(或使设备受益最多)低功率设备操作或高速代码执行的(多个)映像部分,将(多个)所识别的映像加载到可用NVRAM中,以及仅从NVRAM执行这些部分。计算设备处理器可以将分区的其他部分加载到DRAM或其他类似的易失性存储器中,并且结合从NVRAM执行与其相应存储器分开地执行这些代码部分。在各种实施例中,计算设备处理器可以被配置为串行地、彼此结合地、并发地或并行地从不同存储器执行不同部分。以这种方式从NVRAM执行代码的一部分通过改进设备的性能和功率消耗特性来改进设备的运转。
在一些实施例中,计算设备处理器可以被配置为确定从NVRAM继续执行程序或映像部分是否仍然对设备有益(例如,提供持续的功率节省,高速执行仍然很重要等)。响应于确定从NVRAM继续执行程序或映像部分没有显著改善设备的性能或功率消耗特性,计算设备可以将程序或映像从使用NVRAM执行移除,使得应用从易失性存储器(例如,DRAM)执行。响应于确定可以通过在NVRAM中执行另一程序或部分来实现对设备的性能或功率消耗特性的更大改进,计算设备可以将程序或映像从使用NVRAM执行移除,使得应用从易失性存储器执行。通过连续地或重复地评估从NVRAM执行的程序或部分,并且从NVRAM移除表现不佳的部分,各种实施例通过确保以最高效的方式使用有限的NVRAM资源来改进设备的运转。
在一些实施例中,计算设备处理器可以被配置为响应于与存取存储在存储器中的信息的授权尝试一致的确定来发起NVRAM的自毁特征或者执行自毁操作以永久地禁用NVRAM。例如,在设备启动时,处理器可以使计算设备进入正常或默认状态,其中控制对NVRAM的读取/写入存取的门机制被锁定。处理器可以接收用于另一组件(例如,SOC、认证引擎等)的密码,并且执行密码认证操作以确定接收到的密码是否有效或真实可信。响应于确定密码有效/真实可信,处理器可以解锁门机制以启用对NVRAM的读取/写入存取。另一方面,响应于确定密码不是有效或真实可信的,处理器可以递增计数器值和/或确定计数器值是否超过阈值。如果计数器超过阈值,则处理器可以激活NVRAM的自毁特征,或者开始执行自毁操作,以永久地禁用NVRAM。
在一些实施例中,计算设备处理器可以被配置为以正常或非增强存储器模式启动并开始对软件应用程序的执行。处理器可以对当前操作的软件应用程序和/或包括在设备的执行队列中的软件应用程序进行评估。处理器可以基于对当前操作的软件应用程序和/或包括在设备的执行队列中的软件应用程序进行评估的结果来确定计算设备是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行。
响应于确定计算设备将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,计算设备处理器可以将增强存储器模式指示符的值置位以指示或指定后续引导应以增强存储器模式进行。增强存储器模式指示符可以是低功率模式指示符、快速引导时间模式指示符、快速状态转换模式指示符、高速执行模式指示符、寄存器、标志、传递门键/值、门机制、存储在设备的任何非易失性存储器中的值等。在将增强存储器模式指示符的值置位之后,计算设备处理器可以执行各种操作以使计算设备进入断电状态(或睡眠状态、电力崩溃状态、休眠状态、深度睡眠状态、重启状态、关闭状态等)。
计算设备处理器可以接收退出断电状态的命令,读取增强存储器模式指示符的值,并且基于增强存储器模式指示符的值来确定设备应以增强存储器模式操作。作为响应,处理器可以创建到NVRAM的可信信道,并且通过从NVRAM执行软件应用程序的全部或部分来开始以增强存储器模式操作。处理器可以在程序执行期间使用可信信道来读取和写入NVRAM。
图1示出了根据一些实施例的可以包括在便携式计算设备中的系统100的框图,该便携式计算设备被配置为以正常模式或增强存储器模式(例如,功率节省模式、高性能模式等)智能地启动。在图1所示的示例中,系统100包括外部应用处理器(AP)140、SOC 102、NVRAM组件104、RAM组件105、存储存储器组件106以及功率管理控制器108。
SOC 102可以包括多个子系统和逻辑块,其在计算设备内实现各种功能。例如,图1示出了SOC 102可以包括CPU 110,SRAM组件112,包括可信引导程序130的ROM组件114,各种互连/总线116、124、125、126、128、142,功率管理接口118,NVRAM控制器120,RAM控制器121,存储存储器控制器122,内联加密引擎(ICE)160,熔丝132,密钥生成(keygen)引擎165,数字信号处理器(DSP)167,认证引擎169以及输入/输出(I/O)控制器199。
互连/总线116、124、125、126、128、142中的每个可以是逻辑结构、物理结构、片上网络(NoC)或任何数量的等效通信信道。NVRAM组件104可以包括门机制172。存储存储器组件106可以包括辅助引导程序106A。在一些实施例中,功率管理控制器108可以包括定时器组件146和标志组件148。在其他实施例中,定时器组件146和/或标志组件148可以包括在包括非易失性存储器的另一组件或子系统中,例如,在存储存储器组件106内。
CPU 110可以经由互连/总线116电耦合到SOC 102内的各种组件。CPU 110可以被配置为执行软件应用程序以实现本申请中描述的各种功能。
SRAM组件112可以经由互连/总线116电耦合到SOC 102内的各种组件。SRAM是一种类型的半导体存储器,其使用双稳态锁存电路并且典型地用于与CPU相关的缓存操作。
ROM组件114可以经由互连/总线116电耦合到SOC 102内的各种组件。ROM组件114可以存储或包含CPU 110可存取的数据,包括与引导相关的代码和/或指令。可信引导程序130可以驻留在ROM组件114内。可信引导程序130可以由SOC 102在引导操作期间用于对包括SOC 102的计算设备加电。在一些实施例中,可信引导程序130可以由CPU 110使用可信执行环境或TrustZone配置来执行,以确保对可信引导程序130的安全存取和执行。
当计算设备处于断电状态时,可能要求冷引导。在冷引导期间,易失性存储器(例如,RAM组件105)可能是未知的或可能包含不可靠的数据。在一些实施例中,可信引导程序130可以存储在ROM组件114中,这允许可信引导程序130以实质上不可更改的状态被存储。
存储在存储存储器组件106中的辅助引导程序106A可以在操作之前由可信引导程序130进行认证。可能存在多个不可信的辅助引导程序(未单独示出)。可以将这些不可信的辅助引导程序从存储存储器组件106复制到SRAM组件112、RAM组件105或NVRAM组件104中,以在成功验证和/或解密之后启用以编程方式的执行。不可信的辅助引导程序可以在整个引导过程期间这样认证和执行:顺序地、并发地或其任何组合。解密可以调用内联加密引擎(例如,ICE 160)。在睡眠期间,易失性存储器是已知的并且仍然可信。因此,从睡眠模式或睡眠状态引导或转出通常要求实质上比从断电状态执行冷引导少的操作。
认证引擎169可以经由互连/总线116电耦合到SOC 102的各种组件。认证引擎169可以被配置为提供对与计算设备的引导操作相关的数据和/或指令的验证。在一些实施例中,认证引擎169可以被配置为协助存储在ROM组件114中的可信引导程序130。例如,认证引擎169可以被配置为协助可信引导程序130对不可信的辅助引导程序106A进行认证。
在一些实施例中,在一系列顺序引导程序中,认证引擎169可以被配置为协助第一辅助引导程序106A对第二不可信的辅助引导程序(图1中未单独示出)进行认证。
在一些实施例中,认证引擎169可以被配置为对门机制172进行解锁并且提供经由安全信道对NVRAM组件104的存取。
在一些实施例中,认证引擎169可以由以安全模式在CPU 110内执行的程序代替。例如,系统可以被配置为在CPU 110内调用TrustZone模式配置,从而允许CPU 110安全地执行应用程序,该应用程序执行认证引擎169的功能。
数字信号处理器(DSP)167可以经由互连/总线116电耦合到SOC 102内的各种组件。DSP 167可以用于测量、过滤和/或压缩连续的现实世界模拟信号。DSP 167内配置的功能或算法中的许多可以是可操作以用于在CPU 110上执行的。DSP 167对于某些操作可以具有更好的功率效率和更高的性能。在一些实施例中,可以将第一组操作分配给CPU 110,并且可以将第二组操作分配给DSP 167。这可以允许系统受益于处理单元(即,CPU 110和DSP167)中的每个处理单元提供的优点。在各种实施例中,第一组操作和第二组操作可以是扩及同空间的和/或相关的。
密钥生成引擎165可以经由互连/总线116电耦合到SOC 102内的各种组件。在一些实施例中,密钥生成引擎165可以被配置为生成安全密钥。在一些实施例中,密钥生成引擎165可以被配置为生成适合用于配置ICE 160组件的密钥。此外,密钥可以利用NVRAM组件104来初始化安全信道。在一些实施例中,密钥生成引擎165可以是具有附加的安全措施以防止黑客攻击、篡改、窥探等的硬件块。在一些实施例中,可以利用ICE 160组件对包括存储在存储存储器组件106内的辅助引导程序106A的软件映像进行加密或解密。在一些实施例中,ICE 160组件可以被配置为执行与存储接口(例如,嵌入式多媒体控制器(eMMC)、通用闪速存储(UFS)等)或输入-输出接口(例如,通用串行总线(USB)、快速外围组件互连(PCIe)等)一致的加密。在一些实施例中,ICE 160可以在单独的硬件块中实现,而不是集成在存储存储器控制器122内。
在一些实施例中,密钥生成引擎165可以被配置为从ROM组件114和/或熔丝132存取数据以完成由ICE 160进行的操作。熔丝132可以经由互连/总线116电耦合到SOC 102内的各种组件。在各种实施例中,熔丝132中的任何一个或全部可以是可编程只读存储器(PROM)、现场可编程只读存储器(FPROM)、一次性可编程非易失性存储器(OTP NVM)或另一类似的非易失性存储器。
功率管理接口118可以经由互连/总线124连接到功率管理控制器108。同样,功率管理接口118可以经由互连/总线116电耦合到SOC 102内的各种组件。在功率管理控制器108内,可以利用定时器146来跟踪事件(例如,唤醒警报、协助功率控制、协助引导操作等)。例如,IoT设备可以被配置为每十(10)分钟唤醒一次以执行感测任务。功率管理控制器108可以具有标志组件148,其指示当SOC 102引导时SOC 102的期望功率状态。例如,标志组件148可以指示正常模式或增强存储器模式。
NVRAM控制器120可以经由互连/总线126电耦合到NVRAM组件104。同样,NVRAM控制器120可以经由互连/总线116电耦合到SOC 102内的各种组件。NVRAM组件104可以用于在SOC 102操作或断电时对数据和可执行代码的操作存储。本领域技术人员将认识到,NVRAM组件104可以是自旋移矩磁阻随机存取存储器(STT-MRAM)、电阻随机存取存储器(RE-RAM)、三维交叉点(3D-XPOINT)等。
在一些实施例中,NVRAM组件104可以由门机制172保护,门机制172防止对存储在NVRAM组件104内的数据和/或代码的未授权存取。本领域技术人员将认识到对门机制172的需要,因为NVRAM组件104可操作以用于即使在SOC 102已经断电之后也存储数据。因此,包含在NVRAM组件104内的数据对于用户可能具有高价值并且要求附加的安全措施,这对于传统形式的RAM可能不是必要的,因为传统形式趋向于一旦断电则快速丢失数据(即,存储器是易失性的)。
RAM控制器121可以经由互连/总线125电耦合到RAM组件105。同样,RAM控制器121可以经由互连/总线116电耦合到SOC 102内的各种组件。在SOC 102操作时,RAM组件105可以用于对数据、栈和可执行代码的操作存储。
存储存储器控制器122可以经由互连/总线128电耦合到存储存储器组件106。同样,存储存储器控制器122可以经由互连/总线116电耦合到SOC 102的各种组件。存储存储器组件106可以用于在SOC 102操作或断电时对数据和可执行代码的存储。在一些实施例中,ICE 160可以包括在存储存储器控制器122内。在各种实施例中,ICE 160组件可以以硬件、软件、固件或其任何组合来实现。在一些实施例中,ICE 160组件可以被配置为实现各种安全措施以防止篡改、黑客攻击、窥探等。
外部应用处理器(AP)140可以经由互连/总线142电耦合到SOC 102内的I/O控制器199,允许AP 140与SOC 102之间的通信。此外,AP 140和SOC 102可以选择性地共享资源。AP140与SOC 102之间的通信可以包括控制信号、状态消息和/或其他数据的双向传输。SOC102与AP 140之间的共享资源可以包括任何内部状态或功能特征,例如,永久只读存储器、易失性存储器、非易失性存储器、处理器、加速器、引擎等。
在一些实施例中,外部AP 140可以是SOC。在一些实施例中,外部AP 140可以是被配置用于对补充SOC 102的功能的专用任务进行托管的处理器。本领域技术人员将认识到,现代计算设备可以包括许多的SOC、处理器、存储器等。外部AP 140被示出为强调另一个SOC和/或处理器可以与SOC 102交互以实现移动设备或便携式计算设备的期望功能(例如,通过蜂窝网络进行通信,捕获视频/图像,播放三维游戏等)。例如,外部AP 140可以是图形处理单元(GPU),其被配置为向SOC 102提供图形处理协助。在另一示例中,外部AP 140可以是蜂窝通信SOC,其被配置为使得能够经由SOC 102进行计算设备的无线通信。
图2示出了用于对被制造为包含SOC 102和NVRAM组件104的计算设备进行初始化的实施例方法200。参考图1和图2,方法200可以由便携式计算设备的处理器和/或系统100中的一个或多个组件来执行,例如,SOC 102、CPU 110、DSP 167、NVRAM组件104、熔丝132、认证引擎169、门机制172等。在下面对图2的描述中,参考执行方法200的操作的“处理器”,以总体包含可以执行方法操作的各种处理器和/或电路。
在框202中,处理器(例如,CPU 110、DSP 167等)可以将NVRAM组件104配置为初始状态,其中通过对门机制172进行解锁并且设置私钥=0,最初禁用传递门特征。在框204中,通过供应私钥=b,设置自毁计数器阈值(MAX_TRY_THRESHOLD)=n,密码=“password”,以及启用传递门特征,处理器可以将NVRAM组件104与SOC 102配对。
在框206中,处理器可以开始执行启动序列以唤醒或启动便携式计算设备。在设备启动时,处理器可以使设备进入其中门机制172被锁定的默认状态。另外,处理器可以执行密钥交换序列和/或从一组公钥p和g中随机选择。
在确定框208中,处理器、认证引擎169和/或NVRAM组件104可以发起密码认证并且确定密码是否有效或真实可信。在一些实施例中,处理器还可以被配置为在框208中使自毁失败尝试(SDFTC)值递增或清零。响应于认证密码或确定密码有效/真实可信(即,确定框208=“是”),在框216中,处理器可以解锁门机制172以启用对NVRAM组件104的读取/写入存取。在一些实施例中,在框216中成功解锁门机制172之后,处理器可以重置SDFTC值。
在确定框218中,处理器可以确定其是否接收到(例如,从软件应用程序等)请求设备断电、重置、休眠或进入另一类似状态的指令。响应于确定尚未接收到请求设备断电、重置、休眠或进入另一类似状态的指令(即,确定框218=“否”),处理器可以继续处理操作(例如,执行指令,等待中断等),直到在确定框218中处理器确定其接收到请求设备断电、重置、休眠或进入另一类似状态的指令。
响应于确定已经接收到请求设备断电、重置、休眠或进入另一类似状态的指令(即,确定框218=“是”),在框220中,处理器可以锁定门机制172。然后,处理器可以使设备进入所请求的状态,直到其接收到在框206中开始执行启动序列以唤醒或启动便携式计算设备的指令。在一些实施例中,在框218中断电、重置或进入休眠模式可以在运行时执行时段之后发生以完成任务。
响应于确定密码不是有效或真实可信的(即,确定框208=“否”),在确定框210中,处理器可以确定SDFTC值是否超过阈值(例如,MAX_TRY_THRESHOLD值等)。在一些实施例中,处理器还可以在框208中使SDFTC值递增或更新。
响应于确定SDFTC值超过阈值(即,确定框210=“是”),在框214中,处理器可以发起自毁特征或开始执行自毁操作以永久地禁用NVRAM组件104。
响应于确定SDFTC值未超过阈值(即,确定框210=“否”),在框212中,处理器可以将门机制172维持在“锁定状态”。然后,处理器可以使SDFTC值递增(如果需要)并且等待接收在框206中开始执行启动序列以唤醒或启动便携式计算设备的指令。
在图2所示的示例中,处理器启用传递门特征作为用于将NVRAM组件104与SOC 102配对的操作中的部分操作的一部分。然而,还应认识到,在一些实施例中,在不启用传递门特征的情况下,在框204中NVRAM组件104可以与SOC 102配对。以这种方式,NVRAM组件104可以以其中SOC未被配置为支持防篡改操作的“传统式”模式使用。例如,在一些实施例中,SOC102可以不包括熔丝132。作为另一示例,SOC 102可以不支持可能要求与门机制172通信并且控制门机制172的附加命令。
图3示出了用于经由门机制172、熔丝132和(多个)NVRAM熔丝(未示出)提供对NVRAM组件104的安全存取的方法300。参考图1-3,方法300可以由便携式计算设备的处理器和/或系统100或SOC 102中的一个或多个组件执行,例如,CPU 110、DSP 167、NVRAM组件104、熔丝132、认证引擎169、门机制172等。在下面对图3的描述中,参考执行方法d00的操作的“处理器”,以总体包含可以执行方法操作的各种处理器和/或电路。
在框302中,处理器可以发起引导序列以启动设备并且开始执行可信引导程序130。在一些实施例中,可信引导程序130可以在CPU 110上执行。在一些实施例中,可信引导程序130可以在DSP 167上执行。可信引导程序130可以初始化对存储在SOC 102上的(多个)熔丝132中的解锁密码的取出。
在框304中,处理器和/或NVRAM控制器120可以向NVRAM组件104发送解锁密码。在一些实施例中,在框304中,NVRAM控制器120可以经由互连/总线126将解锁密码发送到NVRAM组件104。在一些实施例中,解锁密码可以以加密格式发送。在一些实施例中,解锁密码可以以未加密格式发送。在一些实施例中,可以在SOC 102内执行加密。在一些实施例中,解锁密码可以由在CPU 110上运行的软件以编程方式加密。
在框306中,NVRAM组件104可以接收解锁密码。在框308中,NVRAM可以将未经加密的解锁密码与存储在(多个)熔丝132中的值进行比较以生成比较结果。在确定框310中,处理器可以基于比较结果来确定解锁密码是否与(多个)熔丝132中的值匹配。
响应于确定解锁密码与(多个)熔丝132中的值匹配(即,确定框310=“是”),在框312中,处理器可以解锁门机制172以解锁或启用对NVRAM组件的存取。在框312中的功能完成之后,方法300前进到结束(END)框并且终止。
响应于确定解锁密码与(多个)熔丝132中的值不匹配(即,确定框310=“否”),在框314中,处理器可以将门机制172维持在锁定状态,以防止对NVRAM组件104的读取/写入存取。然后,处理器可以在结束框中结束方法300。
应认识到,解锁方法/操作可以通过各种方式(SOC 102中的CPU 110、DSP 167或其他微处理器(未示出))来操作,以适应功率消耗、安全级别等。
还应认识到,NVRAM组件104中的门机制172可以以各种方式实现,以适应成本、复杂性、性能、安全级别和/或其他类似因素中的任何或全部因素。本领域普通技术人员将认识到在不使用较复杂的微控制器的情况下,使用最小的存储器管芯区域利用相对不复杂的电路和逻辑来实现门机制172的设计优点。然而,本领域技术人员可以得出实现本文描述的相同功能的复杂实现方式。
图4A是示出根据各种实施例的存储存储器组件106的框图,该存储存储器组件106包括可以从存储装置(例如,ROM、FLASH等)加载到RAM组件105和/或NVRAM组件104中并且在RAM组件105和/或NVRAM组件104上运行的程序的非易失性映像。在图4A所示的示例中,存储存储器组件106包括映像A407部分、映像B 410部分和文件系统412部分。在一些实施例中,映像A407可以与DSP 167相关联。在一些实施例中,映像B410可以与CPU 110相关联。
在一些实施例中,映像A407可以包括代码部分417、只读(RO)部分420和读取-写入(RW)部分422。代码部分417可以被配置为执行DSP167的操作。例如,DSP 167可以是可操作以用于管理与由SOC 102支持的特定功能相关的增强处理操作或低功率处理操作(例如,模拟转数字蜂窝通信)的。RO部分420可以包含常量、默认值、查找表、在运行时执行期间不改变值的附加静态数据,代码部分417在其上进行操作。RW部分422可以包含数据的初始值,该数据可以由代码部分417用于DSP 167执行要求对RAM组件105、NVRAM组件104和/或存储存储器组件106进行读取操作和写入操作两者的操作。在一些实施例中,映像A 407可以包括程序A的初始状态,并且可以从存储存储器组件106复制到RAM组件105、NVRAM组件104或SRAM组件112中以供执行。
将映像A 407与映像B 410进行比较,映像A407可以与DSP 167相关联,而映像B410可以与CPU 110相关联。映像B 410可以与映像A略微不同地配置,因为映像B 410具有代码#1部分430和代码部分#2 440。
在一些实施例中,代码#1部分430可以被配置为在RAM组件105中运行,而代码#2部分440可以被配置为在NVRAM组件104内运行。
代码#1部分430可以与RO#1部分432和RW#1部分434相关联。RO#1部分432可以包含代码#1部分430在其上进行操作的数据。RW#1部分434可以包含数据的初始值,该数据可以由代码#1部分430用于CPU 110执行要求读取操作和写入操作两者的操作。
代码#2部分440可以被配置为在NVRAM组件104内操作。RO#2部分442可以与映像B410相关联。RO#2部分442可以被配置为由代码#2部分440与CPU 110结合地操作。此外,RO#2部分440可以具体地配置为驻留在NVRAM组件104中。在一些实施例中,RO#2部分442可以存储当SOC 102在操作时不需要或不应更改的安全数据。两个读取-写入部分444、446被配置作为两个单独的部分,RW#2-a部分444和RW#2-b部分446。下面进一步详细描述RW部分444、446。本领域技术人员将认识到,RW部分444、446可以与本文描述的其他RW部分/存储器类似地利用。例如,RW#2-a部分444和RW#2-b部分446两者可以使用存储存储器组件106中的初始值在NVRAM组件104中启动。
在运行时期间,CPU 110可以读取或写入NVRAM组件104中的RW#2-a部分444和RW#2-b部分446。因此,可以改变NVRAM组件104中的值,但是存储存储器组件106中的初始值可以保持不变,并且如果需要可以用于在下次系统启动时初始化NV#组件104中的RW#2-a部分444和RW#2-b部分446。然而,如应在下面描述的,具有多个RW部分444、446是有利的。
本领域技术人员将认识到,具有独立的代码部分(例如,代码#1部分430和代码#2部分440)使得能够动态处理涉及潜在可分离功能的任务。作为说明性示例,代码#1部分430可以对应于音频编码器,而代码#2部分440可以对应于音频解码器。如果用户仅希望收听音乐,则不需要示例性代码#1部分430(包含示例性音频编码器)来回放音频。因此,代码#2部分440(包含示例性音频解码器)将被加载到存储器(例如,RAM组件105、NVRAM组件104等)中。本领域技术人员将进一步认识到超出本说明书的范围但与提出的系统100完全一致的复杂用例。
文件系统412可以驻留在存储存储器上。文件系统412可以是可操作以用于存储用户数据(例如,照片、电子邮件、应用等)的常规文件系统。例如,SOC 102可以对文件系统412进行存取以实现用户发起的操作(例如,在体育赛事期间捕获和存储数字照片)。在一些实施例中,文件系统412可以与映像407、410分离,如所示出的。在一些实施例中,文件系统412可以封装并包含映像407、410。
图4B是示出根据各种实施例的程序可以加载到其上的RAM组件105的框图。RAM数据可以驻留在RAM组件105内,在一些实施例中,RAM组件105可以是DDR或DRAM半导体。在图4B所示的示例中,RAM组件105包括映像A 407A部分、映像B 410A部分和RAM缓冲器412部分。在一些实施例中,映像A 417A和映像B 410A可以从存储存储器组件106(图4A中示出)加载到RAM组件105中。
映像A部分407A可以与代码部分417A、RO部分420A、RW部分422A和栈425相关联。代码部分417A、RO部分420A和RW部分422A可以实质上类似于图4A中所示的代码部分417、RO部分420和RW部分422。
映像B部分410A可以与代码#1部分430、RO#1部分432和RW#1部分434相关联,所有这些可以与其在图4A中所示的存储存储器组件106中的相应部分相同或实质上类似。映像B部分410A还可以与栈部分436相关联,这是为了描述的完整性并且展示了映像正在RAM组件105中执行。
在RAM数据被加载到RAM组件105中之前,可能需要存储RAM数据并且随后从存储存储器组件106取回RAM数据。RAM数据的量可以小于RAM组件105的容量,使得实质上映像A407A和映像B 410A的整体可以两者都加载到RAM组件105中。在一些实施例中,映像A部分407A可以包括映像A部分407的子集。
RAM缓冲器450可以针对由加载到RAM组件105中的代码部分417A、430提供的各种用例来提供静态读取或读取-写入存储器。
图4C是示出根据各种实施例的程序可以加载到其上的NVRAM组件104的框图。NVRAM数据可以驻留在NVRAM组件104内。在图4C所示的示例中,NVRAM组件104包括映像A407B部分、映像B 410B部分和操作控制标志455部分。在一些实施例中,映像A 417B和映像B 410B可以从存储存储器组件106(图4A中示出)加载到NVRAM组件104中。
映像A部分407B可以实质上类似于如存储在存储存储器组件106中的映像A部分407。同样,映像A部分407B可以实质上类似于存储在RAM组件105中的映像A部分407A。因此,映像A部分407B可以具有代码部分417B、RO部分420B和RW部分422B,所有这些可以仅包含如对应地存储在存储存储器组件106中的、存储在映像A部分407中的其对应物中可用的全部功能的子集。栈425可以存在于NVRAM数据407内,并且实质上类似于栈425如何在RAM数据106中操作来操作。
映像B部分410B可以包括代码#2部分440、RO#2部分442、RW#2-A部分444、RW#2-B446和RW#2-A444的备份副本(称为RW#2-A0 447)。在NVRAM部分410B中,可以另外存在RW#2-B 446的散列摘要,其可以被称为RW#2-BH 461。此外,在NVRAM部分410B中,可以存在栈436。本领域技术人员将认识到,映像B部分410B可以实质上类似于存储在存储存储器组件106中的映像B部分410。
给定当前NVRAM实现方式的大小限制,映像A部分407B可以是如存储在存储存储器组件106中的映像A407的整体的子集。例如,SOC 102可以仅需要由DSP 167提供的功能的子集。因此,SOC 102可以以增强存储器模式操作以减少便携式计算设备上的功率消耗。以增强存储器模式操作可以部分地因为仅映像A407的部分用于引导操作而减少设备上的功率消耗。
在初始引导之后,可以更新/改变RW#2-A部分444和RW#2-B 446中的数据的值。由于NVRAM组件104的非易失性质,在后续的启动操作中,在没有重新初始化的情况下,RW#2-A部分444和RW#2-B 446中的数据的值可以保持为更新后/改变后的值,而不是与如存储存储器组件106中的映像B 410中的初始值相同。然而,可能需要重新初始化RW数据中的一些,以便执行映像B 410B中的程序。在一些实施例中,RW#2-A部分444可以表示要求重新初始化的部分,并且RW#2-B 446可以表示不要求重新初始化为(多个)原始值的部分(相反保留来自先前执行/操作的状态)。
在一些实施例中,系统100可以寻求避免在后续引导中对存储存储器组件106的启用和存取。因此,称为RW#2-A0的、RW#2-A 444的备份副本被保存在NVRAM组件104中,以避免需要启用和存取存储存储器组件106。
RW#2-A0部分447可以用于将RW#2-A部分444重新初始化为其原始值。为了使RW#2-B 446在重新引导之后验证其余数据的完整性,可以利用最新值针对RW#2-B 446生成散列摘要RW#2-BH部分461。在一些实施例中,RW#2-BH部分461可以保存在NVRAM 406中并且用于在重新引导时确认RW#2-B部分446。通过具有RW#2-A0和RW#2-BH部分447、461,增强存储器模式引导操作可以避免执行用于启用和启动存储存储器组件106的操作,从而减少系统100的能量消耗。
给定NVRAM组件104(或本文描绘的NVRAM单元407)的大小限制,可以加载映像B部分410的整体的一些部分作为映像B部分410B。例如,SOC 102可以以增强存储器模式操作并且仅需要由CPU 110提供的功能的子集,因为增强存储器模式部分地通过仅利用映像B 410的必要部分完成引导操作来节省功率。
一系列操作控制标志可以驻留在NVRAM组件104的操作控制标志455部分内。操作控制标志还可以存储在存储器/存储装置的任何可操作部分中以完成预期的功能。操作控制标志可以用于向SOC 102指示是以正常模式还是以增强存储器模式来引导。
关于各种映像407、407A、407B、410、410A、410B,本领域技术人员将认识到,这些映像中的任何一个映像可以是静态构建的或动态构建的(也称为“可重定位的”)。例如,可以根据编程的存储器布局来构建映像407、407A、407B、410、410A、410B,以将各种映像程序部分放置到指定的地址存储器范围中,并且进一步适应操作环境和/或相关联的存储器。因此,系统100可以将恰当的存储器存取控制应用于映像407、407A、407B、410、410A、410B的不同部分。此外,操作系统(OS)或高级操作系统(HLOS)可以不同地将存储器存取属性配置用于映像的不同部分。这样的设计可以利用不同的时延/功率属性的性质,并且进一步分发映像的不同部分以充分利用益处。例如,映像B 410可以构建有用于RAM组件105的一个部分(映像B部分410A)和用于NVRAM组件104的另一部分(映像B部分410B)。此外,可以创建不同的映像用于不同的目的。例如,可以针对CPU 110构建映像A407,并且可以针对DSP 167构建映像B 410。本领域技术人员将认识到,CPU 110和DSP 167可以具有不同的机器代码。因此,通常的实践是使用不同的编译器来创建不同的映像。
可以针对特定用例创建更少或更多的映像。本领域技术人员将认识到针对不同的配置来配置各种软件映像的潜在需求。例如,可以受益于NVRAM组件104的非易失性就地执行(XIP)行为的软件映像可以选择利用这些益处。由于NVRAM组件104可以仅是计算设备上可用的总体存储器的一小部分,因此映像中的许多映像可以目标为驻留在RAM组件105中。另外,可以以与RAM组件105相比降低的性能水平(例如,使用带宽频率)来操作容量较小的NVRAM组件104,使得当RAM组件105处于睡眠模式、电力崩溃模式等时仅从NVRAM组件104操作时节省功率。
图5示出了根据一些实施例的将SOC 102配置为在后续引导时以正常(非增强存储器)模式或增强存储器模式智能地引导的方法500。参考图1-5,方法500可以由便携式计算设备的处理器和/或系统100或SOC 102中的一个或多个组件执行,例如,CPU 110、DSP 167、NVRAM组件104、RAM组件105、存储存储器组件106、ROM组件114、熔丝132、标记组件148、ICE160等。在下面对图5的描述中,参考执行方法500的操作的“处理器”,以总体包含可以执行方法操作的各种处理器和/或电路。
在开始(START)框处开始,在框502中,处理器可以初始化可信引导程序130。在一些实施例中,可以从ROM组件114存取可信引导程序130,使得SOC 102可以初始化恰当的子系统。在确定框504中,处理器可以确定可信引导程序130是否被加密。
响应于确定可信引导程序130被加密(即,确定框504=“是”),在框506中,处理器可以对可信引导程序进行解密。在一些实施例中,可信引导程序可以经由ICE 160在框506中被解密。例如,处理器/CPU 110可以对存储在熔丝132中的信息进行存取并且利用密钥生成引擎165,使得可以在框506中由ICE 160对可信引导程序130进行解密。
响应于确定可信引导程序130未被加密或者以其他方式不需要解密(即,确定框504=“否”),在框508中,处理器可以初始化SOC 102内的各种类型的存储器。例如,在框508中,处理器可以初始化存储存储器组件106、RAM组件105、NVRAM组件104或其组合。本领域技术人员将认识到,可以在框508中初始化其他存储器和存储子系统。
在框510中,处理器可以将映像A部分和映像B部分(例如,部分407A和410A)加载到RAM组件105中。在一些实施例中,在框510中,处理器可以将映像A部分和映像B部分的部分加载到SRAM组件112中。在其他实施例中,处理器可以取决于SOC 102的预期用途而将映像A部分和映像B部分分配给不同的存储器。如先前讨论的,映像部分可以是静态或者动态地构建的,以从NVRAM组件104或从RAM组件105运行。在一些实施例中,处理器可以在映像A部分和映像B部分已经被加载到存储器中之后对其进行认证。
在框512中,处理器可以使SOC 102发起引导序列和/或以正常(非增强存储器)模式操作,以从RAM存储器中的一个执行软件应用程序。在一些实施例中,在框512中以正常模式操作可以包括将DSP 167重置为其开始状态,指示CPU 110加载高级操作系统(HLOS)),在便携式计算设备的电子显示器上显现一系列引导消息,播放与启动相关的声音以指示成功引导或其他类似操作。
在确定框514中,处理器可以确定在下次引导之后SOC 102是否应以增强存储器模式操作。在确定框514之前,用户可以使计算设备在短至几秒或长至几个月内操作,因此本领域技术人员将认识到,当执行方法500的处理器从框512移动到确定框514时可能经过非凡的时间量。
响应于确定在下次引导之后SOC 102不应以增强存储器模式操作(即,确定框514=“否”),在框516中,处理器可以将功率管理控制器108中的标记组件148清零或置位(或者将另一非易失性存储器中的寄存器、标志、指示符或值置位),以指示后续引导应以正常模式进行。在框520中,处理器可以使SOC 102断电。
响应于确定在下次引导之后SOC 102应以增强存储器模式操作(即,确定框514=“是”),在框518中,处理器可以将功率管理控制器108中的标记组件148置位或清零(或者将另一非易失性存储器中的寄存器、标志、指示符或值置位),以指示后续引导应以增强存储器模式进行。标志组件148可以位于功率管理控制器108中;然而,本领域技术人员将认识到,标志组件148可以存储在可操作以用于存储在初始或后续引导期间可用的动态数据的任何位置中。在框520中,处理器可以使SOC 102断电。
SOC 102的断电操作超出本说明书的范围,但是本领域技术人员将认识到,可能需要在框520中执行许多的“清理”操作以实现对SOC 102的成功的后续引导。另外,如本领域技术人员将认识到的,在正常模式引导下,SOC 102可以重复方法500若干次,以实现任何数量的成功的后续引导。
本领域技术人员将认识到,可以利用多个用于安全引导SOC 102的替代机制,并且这些替代机制将超出本具体实施方式的范围。此外,如果SOC 102的操作环境允许这种缺乏安全性,则本领域技术人员可以选择不加密可信引导程序130。相反,加密/解密方法可以比方法500中更鲁棒。SOC的操作环境将影响本领域技术人员实现恰当的安全量。
图6示出了根据实施例的以增强存储器模式引导SOC 102的方法600。参考图1-6,方法600可以由便携式计算设备的处理器和/或系统100或SOC 102中的一个或多个组件来执行,例如,CPU 110、DSP 167、NVRAM组件104、熔丝132等。在下面对图6的描述中,参考执行方法600的操作的“处理器”,以总体包含可以执行方法操作的各种处理器和/或电路。
在框602中,处理器可以使SOC 102重置并且开始执行存储在ROM组件114中的可信引导程序130。作为这些操作的一部分,SOC 102可以执行各种操作以明确SOC 102的稳定性和/或对包括在系统100或SOC 102中的各种子系统或组件进行加电或初始化。
在框604中,处理器和/或SOC 102可以接收适合于确定SOC 102是应以正常模式还是以增强存储器模式引导的指示或信息。例如,在框604中,处理器和/或SOC 102可以从功率管理控制器108中的标志组件148接收指示SOC 102应以正常模式(或者以增强存储器模式)引导的信息。作为另一示例,处理器和/或SOC 102可以经由通用输入/输出(GPIO)命令从外部AP 140接收指示/信息。本领域技术人员将认识到,上面的说明性示例仅表示SOC执行可信引导程序130以接收关于是以正常模式还是以增强存储器模式引导的指示的许多方式中的一些。
在确定框606中,处理器和/或SOC 102可以基于接收到的指示/信息来确定是否以增强存储器模式(例如,功率节省模式等)引导SOC。
响应于确定SOC不应以增强存储器模式引导(即,确定框606=“否”),处理器可以执行图5中所示的标注框A之后指示的操作(例如,如上面描述的框502、504中的操作等)。
响应于确定SOC应以增强存储器模式引导(即,确定框606=“是”),在框608中,处理器可以创建安全信道(或信任信道),解锁或打开门机制172(或NVRAM门)以及提供经由安全/信任信道对NVRAM组件104的存取。
本领域技术人员将理解,可以使用上面参考图2描述的方法200提前配置SOC 102。在这样的实施例中,NVRAM组件104可以配置有可操作以用于控制对NVRAM组件104的存取的门机制172。执行方法600的处理器可以利用如参考图3描述的方法300。
一旦门机制172已经被打开,则NVRAM组件104可以由SOC 102存取,并且在框610中,处理器可以执行对存储在NVRAM组件104中的数据的完整性检查。在一些实施例中,NVRAM组件104可以包含与如图4C中描绘的并且在上面描述的NVRAM数据407类似的数据。在一些实施例中,NVRAM数据407可以包括在NVRAM组件104中,或者提前配置为在NVRAM组件104内执行。
本领域技术人员将认识到,NVRAM组件104的存储容量可以小于位于SOC 102内的其他存储器(例如,RAM组件105、存储存储器组件106等)。本领域技术人员将认识到,存在多种用于在存储装置和/或存储器的各种区块之间移位数据的机制。因此,本领域技术人员可以开发实质上类似的方法来确保在SOC 102以增强存储器模式操作时不超过NVRAM组件104的容量。
在框612中,处理器和/或SOC 102可以开始以增强存储器模式操作。在以增强存储器模式操作时,SOC 102内的未使用的子系统可以断电或置于睡眠模式。在一些实施例中,RW#2-A部分444在容量、时延和/或功率方面可以足以执行SOC 102的操作,在这种情况下,RAM控制器121和RAM组件105可以断电或放置在睡眠模式。在一些实施例中,在SOC 102以增强存储器模式操作时,存储存储器控制器122和相关联的存储存储器组件106可以断电或置于睡眠模式。本领域技术人员将认识到在SOC 102内的许多子系统断电或进入睡眠状态时能够操作SOC 102的固有功率节省优点。
在确定框614中,处理器和/或SOC 102可以确定是否存在要求SOC 102返回到以正常(非增强存储器)模式操作的任何错误、条件或异常。
响应于确定存在要求SOC 102返回到以正常模式操作的错误、条件或异常(即,确定框614=“是”),处理器和/或SOC 102可以执行如所描述的图5中的标注框C之后指示的方法500的操作(例如,框512、514中的操作等)以使SOC返回到以正常操作模式操作。
响应于确定不存在要求SOC 102返回到以正常模式操作的错误、条件或异常(即,确定框614=“否”),在确定框616中,处理器和/或SOC 102可以确定是否继续以增强存储器模式操作。
响应于确定操作应以增强存储器模式继续(即,确定框616=“是”),在框612中,处理器和/或SOC 102可以继续以增强存储器模式操作。
响应于确定操作不应以增强存储器模式继续(即,确定框616=“否”),处理器和/或SOC 102可以执行如所描述的图5中的标注框B之后指示的方法500的操作(例如,框514中的操作等)。在一些实施例中,增强存储器模式的终止可以通过用户的操作(例如,用户使包含SOC 102的计算设备断电)。
图7示出了根据实施例的以增强存储器模式智能地操作的方法700。参考图1-7,方法700可以由便携式计算设备的处理器和/或系统100或SOC 102中的一个或多个组件来执行,例如,CPU 110、DSP 167、NVRAM组件104、熔丝132等。在下面对图7的描述中,参考执行方法700的操作的“处理器”,以总体包含可以执行方法操作的各种处理器和/或电路。
在框702中,处理器可以从存储存储器(例如,ROM、FLASH等)读取软件应用程序。在框704中,处理器可以对软件应用程序进行解密。在一些实施例中,在框704中,处理器还可以对软件应用程序进行解压缩。例如,处理器可以确定软件应用程序是否在加密和存储之前被压缩,并且响应于确定软件应用程序在加密和存储之前被压缩而在框704中对软件应用程序进行解压缩。
在确定框706中,处理器可以确定软件应用程序是否为以增强存储器模式操作的候选者。例如,在确定框706中,处理器可以确定软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行。在一些实施例中,在确定框706中,处理器还可以确定益处是否显著和/或超出以增强存储器模式操作的成本(在性能、功率消耗等方面)。
例如,在确定框706中,处理器可以取回或确定(例如,经由操作系统等)软件应用程序的大小值、软件应用程序的功率消耗值、软件应用的性能值和/或软件应用程序的引导时间值。处理器可以基于大小值、功率消耗值、性能值和/或引导时间值来确定费用度量值,并且将费用度量值与阈值进行比较以确定费用度量值是否超过阈值。响应于确定费用度量值不满足或超过阈值,在确定框706中,处理器可以确定益处超出以增强存储器模式操作的成本。
在一些实施例中,大小值、功率消耗值、性能值和/或引导时间值可以是零(0)和九(9)之间的数值。在一些实施例中,阈值可以是零(0)和一百(100)之间的数值。在实施例中,处理器可以将费用度量值设置为等于((10*大小值)+(5*功率值)+(引导时间值))。在实施例中,阈值可以是四十(40)。
作为另一示例,在一些实施例中,在执行确定框706中的操作之前,处理器可以识别候选软件应用程序,将所有候选软件应用程序分类到一个或多个类别(例如,低功率、紧凑、高性能、特殊用途等)中,确定候选软件应用程序中的每个候选软件应用程序的价值值(例如,基于大小值、功率消耗值、引导时间值、其被分类到的类别等),以及基于价值值来生成候选软件应用程序的列表。在确定框706中,处理器可以基于价值值或候选软件应用程序的列表中包括的信息来确定软件应用程序是否为以增强存储器模式操作的候选者。
例如,处理器可以生成候选软件应用程序的列表以仅包括具有超过阈值的价值值的软件应用程序,并且响应于确定软件应用程序包括在候选软件应用程序的列表中而在确定框706中确定该软件应用程序是以增强存储器模式操作的候选者。作为另一示例,处理器可以生成候选软件应用程序的经排序列表或有序列表,该列表基于软件应用程序的相应的价值值来组织软件应用程序,并且响应于确定软件应用程序是候选软件应用程序的经排序列表或有序列表中的第一个、最后一个或最有价值的候选者而在确定框706确定该软件应用程序是以增强存储器模式操作的候选者。
响应于确定软件应用不是以增强存储器模式操作的候选者(即,确定框706=“否”),在框708中,处理器可以将软件应用程序加载到易失性存储器中。响应于确定程序不会受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,处理器可以确定软件应用不是以增强存储器模式操作的候选者。响应于确定益处不显著,益处不超出以增强存储器模式操作的成本,或者费用度量值满足或超过阈值,处理器也可以确定软件应用不是以增强存储器模式操作的候选者。
在框710中,处理器可以更新标志(例如,将增强存储器模式指示符清零等)和/或将控制转移到程序计数器。在框712中,程序计数器和/或处理器可以开始从易失性存储器执行软件应用程序。
响应于确定软件应用程序是以增强存储器模式操作的候选者(即,确定框706=“是”),在确定框720中,处理器可以确定可供使用的NVRAM的量和/或确定是否可以将整个软件应用程序存储在可用NVRAM中。响应于确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,益处是显著的,益处超出以增强存储器模式操作的成本,和/或费用度量值不满足或超过阈值,处理器可以确定软件应用程序是以增强存储器模式操作的候选者。
响应于确定整个软件应用程序可以存储在可用NVRAM中(即,确定框720=“是”),在框722中,处理器可以将整个软件应用程序加载到NVRAM中。在框710中,处理器可以将标志(例如,增强存储器模式指示符等)置位和/或将控制转移到程序计数器。在框712中,程序计数器和/或处理器可以开始从NVRAM执行软件应用程序。
响应于确定可用NVRAM不足够大以存储整个软件应用程序(即,确定框720=“否”),在框730中,处理器可以将软件应用程序划分为映像部分(或多个软件映像)。
在框732中,处理器可以识别用于加载到NVRAM中的映像部分。在一些实施例中,处理器可以确定当从NVRAM执行时将表现出性能改进(例如,快速启动、快速状态改变、低功率设备操作、高速代码执行等)的映像部分。在一些实施例中,处理器可以基于从NVRAM执行可以实现的性能改进来对映像部分划分优先级,并且基于优先级来识别用于加载到NVRAM中的映像部分。因此,在一些实施例中,处理器可以识别当从NVRAM执行时将表现出最大性能改进的映像部分。在一些实施例中,通过例如确定费用度量值是否超过阈值,在框732中,处理器可以确定将表现出最大性能改进或者将从与从NVRAM执行相关联的改进中受益最多的映像部分。
在框734中,处理器可以将所识别的映像部分加载到NVRAM中。在框736中,处理器可以将其余的映像部分加载到易失性存储器中。
在框710中,处理器可以将标志(例如,增强存储器模式指示符等)置位和/或将控制转移到一个或多个程序计数器。在框712中,(多个)程序计数器和/或处理器可以开始从NVRAM和易失性存储器执行这些部分。
在一些实施例中,计算设备、SOC或处理器可以被配置为通过从计算设备的存储存储器读取软件应用程序,并且确定软件应用程序是否为以增强存储器模式操作的候选者,来智能地确定是否以增强存储器模式操作。响应于确定软件应用程序不是以增强存储器模式操作的候选者,计算设备可以将软件应用程序加载到易失性存储器中,并且将增强存储器模式指示符清零。另一方面,响应于确定软件应用程序是以增强存储器模式操作的候选者,计算设备可以创建到NVRAM的可信信道,将软件应用程序加载到NVRAM中,并且将增强存储器模式指示符置位。
在计算设备重新引导(或进入和退出睡眠状态等)之后,计算设备可以确定增强存储器模式指示符是否被置位。响应于确定增强存储器模式指示符未被置位(即,指示在重新引导之前被清零),计算设备可以将控制转移到程序计数器,以开始从易失性存储器执行软件应用程序。响应于确定增强存储器模式指示符被置位(即,指示在重新引导之前被置位),计算设备可以将控制转移到程序计数器,以开始从NVRAM执行软件应用程序。
在一些实施例中,计算设备可以被配置为通过对软件应用程序进行评估以生成评估结果来确定软件应用程序是否为增强存储器模式的候选者。响应于基于评估结果确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,计算设备可以确定软件应用程序是增强存储器模式的候选者。
在一些实施例中,计算设备(SOC等)可以被配置为通过确定软件应用程序的大小值,确定软件应用程序的功率消耗值,确定软件应用程序的引导时间值,并且基于大小值、功率消耗值以及引导时间值确定费用度量值,来确定软件应用程序是否为增强存储器模式的候选者。响应于确定费用度量值超过阈值,计算设备可以确定软件应用程序不是增强存储器模式的候选者。另一方面,响应于确定费用度量值未超过阈值,计算设备可以确定软件应用程序是增强存储器模式的候选者。
响应于确定软件应用程序不是增强存储器模式的候选者,计算设备可以将软件应用程序加载到易失性存储器中。响应于确定软件应用程序是增强存储器模式的候选者,计算设备可以将软件应用程序加载到NVRAM中并且将增强存储器模式指示符置位,该增强存储器模式指示符可操作以用于以增强存储器模式启用对计算设备的后续引导。
在重新引导之后,计算设备可以确定增强存储器模式指示符是否被置位。响应于确定增强存储器模式指示符被置位,计算设备可以开始从NVRAM对软件应用程序的执行(并且因此以增强存储器模式操作)。另一方面,响应于确定增强存储器模式指示符未被置位,计算设备可以开始从易失性存储器对软件应用程序的执行。
各种实施例可以包括操作计算系统/设备(SOC等)的方法,该方法可以包括确定软件应用程序是否为增强存储器模式的候选者;响应于确定软件应用程序是增强存储器模式的候选者,将软件应用程序加载到NVRAM中,并且将增强存储器模式指示符置位,该增强存储器模式指示符可操作以用于以增强存储器模式启用对计算系统/设备的后续引导;在重新引导计算系统/设备之后,确定增强存储器模式指示符是否被置位;以及响应于确定增强存储器模式指示符被置位,通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作计算系统/设备。
在实施例中,该方法可以包括:响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器中,以及响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行。在另一实施例中,确定软件应用程序是否为增强存储器模式的候选者可以包括:对软件应用程序进行评估以生成评估结果,基于评估结果来确定软件应用程序是否将受益于快速启动、快速状态改变、低功率器件操作或高速代码执行,以及响应于确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行而确定软件应用程序是增强存储器模式的候选者。
在另一实施例中,确定软件应用程序是否为增强存储器模式的候选者可以包括:确定软件应用程序的大小值,确定软件应用程序的功率消耗值,确定软件应用程序的引导时间值,基于大小值、功率消耗值以及引导时间值来确定费用度量值,确定费用度量值是否超过阈值,响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者,以及响应于确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者。
在另一实施例中,该方法可以包括:识别多个候选软件应用程序;将所识别的软件应用程序中的每个所识别的软件应用程序分类到一个或多个类别中;基于与所识别的软件应用程序中的每个所识别的软件应用程序相关联的一个或多个类别,确定每个所识别的软件应用程序的价值值;以及基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值,将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中,其中,确定软件应用程序是否为增强存储器模式的候选者可以包括:基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者。
在另一实施例中,基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中可以包括:将所识别的软件应用程序插入候选软件应用程序的有序列表中,候选软件应用程序的有序列表基于所识别的软件应用程序的相关联的价值值来组织所识别的软件应用程序。在另一实施例中,基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中可以包括:确定与所识别的软件应用程序相关联的价值值是否超过阈值,以及响应于确定与所识别的软件应用程序相关联的价值值超过阈值而将所识别的软件应用程序插入候选软件应用程序的列表中。
在另一实施例中,基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者可以包括:确定软件应用程序是否被包括在候选软件应用程序的列表中。在另一实施例中,将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位可以包括:将标志存储在非易失性存储器中。在另一实施例中,将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位可以包括将以下各项中的一项置位:低功率模式指示符,快速引导时间模式指示符,快速状态转换模式指示符,或者高速执行模式指示符。
在另一实施例中,在重新引导计算系统/设备之后确定增强存储器模式指示符是否被置位可以包括:执行可信引导程序以安全地确定增强存储器模式指示符的存在。在另一实施例中,该方法可以包括将增强存储器模式指示符从计算系统/设备的片上系统外部的组件发送到片上系统。在另一实施例中,该方法可以包括接收指示计算系统/设备应退出增强存储器模式的异常,以及响应于接收到异常而以非增强存储器模式操作计算系统/设备。
在另一实施例中,将软件应用程序加载到NVRAM中可以包括将软件映像从存储存储器加载到NVRAM中,该软件映像被配置为在NVRAM内执行。在另一实施例中,该方法可以包括将软件应用程序划分为多个软件映像,其中,将软件应用程序加载到NVRAM中可以包括将多个软件映像的子集加载到NVRAM中。在另一实施例中,该方法可以包括识别多个软件映像中的、将从与NVRAM中的执行相关联的改进中受益最多的软件映像,并且将多个软件映像的子集加载到NVRAM中可以包括:将所识别的软件映像加载到NVRAM中。
另外的实施例可以包括计算系统/设备(SOC等),其包括NVRAM以及耦合到NVRAM的处理器,其中,处理器配置有处理器可执行指令以执行操作,该操作可以包括:确定软件应用程序是否为增强存储器模式的候选者;响应于确定软件应用程序是增强存储器模式的候选者,将软件应用程序加载到NVRAM中,并且将增强存储器模式指示符置位,该增强存储器模式指示符可操作以用于以增强存储器模式启用对计算系统/设备的后续引导;在重新引导计算系统/设备之后,确定增强存储器模式指示符是否被置位;以及响应于确定增强存储器模式指示符被置位,通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作计算系统/设备。
在实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器中,以及响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:对软件应用程序进行评估以生成评估结果,基于评估结果来确定软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,其中,响应于确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行而确定软件应用程序是增强存储器模式的候选者。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:确定软件应用程序的大小值,确定软件应用程序的功率消耗值,确定软件应用程序的引导时间值,根据大小值、功率消耗值以及引导时间值来确定费用度量值,确定费用度量值是否超过阈值,响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者,以及响应于确定确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括:识别多个候选软件应用程序;将所识别的软件应用程序中的每个所识别的软件应用程序分类到一个或多个类别中;基于与所识别的软件应用程序中的每个所识别的软件应用程序相关联的一个或多个类别,确定每个所识别的软件应用程序的价值值;以及基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值,将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中包括:将所识别的软件应用程序插入候选软件应用程序的有序列表中,候选软件应用程序的有序列表基于所识别的软件应用程序的相关联的价值值来组织所识别的软件应用程序。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中包括:确定与所识别的软件应用程序相关联的价值值是否超过阈值,以及响应于确定与所识别的软件应用程序相关联的价值值超过阈值而将所识别的软件应用程序插入候选软件应用程序的列表中。在实施例中,处理器可以配置有处理器可执行指令以执行操作,使得基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者包括:确定软件应用程序是否被包括在候选软件应用程序的列表中。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位包括:将标志存储在非易失性存储器中。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位包括将以下各项中的一项置位:低功率模式指示符,快速引导时间模式指示符,快速状态转换模式指示符,或者高速执行模式指示符。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得在重新引导计算系统/设备之后确定增强存储器模式指示符是否被置位包括执行可信引导程序以安全地确定增强存储器模式指示符的存在。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括将增强存储器模式指示符从计算系统/设备的片上系统外部的组件发送到片上系统。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括接收指示计算系统/设备应退出增强存储器模式的异常,以及响应于接收到异常而以非增强存储器模式操作计算系统/设备。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将软件应用程序加载到NVRAM中包括将软件映像从存储存储器加载到NVRAM中,软件映像被配置为在NVRAM内执行。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括将软件应用程序划分为多个软件映像。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将软件应用程序加载到NVRAM中包括将多个软件映像的子集加载到NVRAM中。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括识别多个软件映像中的、将从与NVRAM中的执行相关联的改进中受益最多的软件映像。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将多个软件映像的子集加载到NVRAM中包括:将所识别的软件映像加载到NVRAM中。
另外的实施例可以包括其上存储有处理器可执行软件指令的非暂时性计算机可读存储介质,该处理器可执行软件指令被配置为使处理器执行用于操作计算系统/设备(SOC等)的操作,该操作包括:确定软件应用程序是否为增强存储器模式的候选者;响应于确定软件应用程序是增强存储器模式的候选者,将软件应用程序加载到NVRAM中,并且将增强存储器模式指示符置位,该增强存储器模式指示符可操作以用于以增强存储器模式启用对计算系统/设备的后续引导;在重新引导计算系统/设备之后,确定增强存储器模式指示符是否被置位;以及响应于确定增强存储器模式指示符被置位,通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作计算系统/设备。
在实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器中,以及响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:对软件应用程序进行评估以生成评估结果,基于评估结果来确定软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,以及响应于确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行而确定软件应用程序是增强存储器模式的候选者。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:确定软件应用程序的大小值,确定软件应用程序的功率消耗值,确定软件应用程序的引导时间值,根据大小值、功率消耗值以及引导时间值来确定费用度量值,确定费用度量值是否超过阈值,响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者,以及响应于确定确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括:识别多个候选软件应用程序;将所识别的软件应用程序中的每个所识别的软件应用程序分类到一个或多个类别中;基于与所识别的软件应用程序中的每个所识别的软件应用程序相关联的一个或多个类别,确定每个所识别的软件应用程序的价值值;以及基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值,将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得确定软件应用程序是否为增强存储器模式的候选者包括:基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中包括:将所识别的软件应用程序插入候选软件应用程序的有序列表中,候选软件应用程序的有序列表基于所识别的软件应用程序的相关联的价值值来组织所识别的软件应用程序。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中包括:确定与所识别的软件应用程序相关联的价值值是否超过阈值,以及响应于确定与所识别的软件应用程序相关联的价值值超过阈值而将所识别的软件应用程序插入候选软件应用程序的列表中。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者包括:确定软件应用程序是否被包括在候选软件应用程序的列表中。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位包括:将标志存储在非易失性存储器中。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位包括将以下各项中的一项置位:低功率模式指示符,快速引导时间模式指示符,快速状态转换模式指示符,或者高速执行模式指示符。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得在重新引导计算系统/设备之后确定增强存储器模式指示符是否被置位包括执行可信引导程序以安全地确定增强存储器模式指示符的存在。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括将增强存储器模式指示符从计算系统/设备的片上系统外部的组件发送到片上系统。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括接收指示计算系统/设备应退出增强存储器模式的异常,以及响应于接收到异常而以非增强存储器模式操作计算系统/设备。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将软件应用程序加载到NVRAM中包括将软件映像从存储存储器加载到NVRAM中,软件映像被配置为在NVRAM内执行。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括将软件应用程序划分为多个软件映像。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将软件应用程序加载到NVRAM中包括将多个软件映像的子集加载到NVRAM中。
在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,该操作还包括识别多个软件映像中的、将从与NVRAM中的执行相关联的改进中受益最多的软件映像。在另一实施例中,处理器可以配置有处理器可执行指令以执行操作,使得将多个软件映像的子集加载到NVRAM中包括:将所识别的软件映像加载到NVRAM中。
另外的实施例可以包括计算系统/设备(例如,SOC等),其包括:用于确定软件应用程序是否为增强存储器模式的候选者的单元;用于响应于确定软件应用程序是增强存储器模式的候选者而将软件应用程序加载到NVRAM中并且将增强存储器模式指示符置位的单元,增强存储器模式指示符可操作以用于以增强存储器模式启用对计算系统/设备的后续引导;用于在重新引导计算系统/设备之后确定增强存储器模式指示符是否被置位的单元;以及用于响应于确定增强存储器模式指示符被置位而通过开始从NVRAM对软件应用程序的执行来以增强存储器模式操作计算系统/设备的单元。
在实施例中,计算系统/设备可以包括用于响应于确定软件应用程序不是增强存储器模式的候选者而将软件应用程序加载到易失性存储器中的单元,以及用于响应于确定增强存储器模式指示符未被置位而开始从易失性存储器对软件应用程序的执行的单元。在另一实施例中,用于确定软件应用程序是否为增强存储器模式的候选者的单元可以包括:用于对软件应用程序进行评估以生成评估结果的单元,用于基于评估结果来确定软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行的单元,以及用于响应于确定软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行而确定软件应用程序是增强存储器模式的候选者的单元。
在另一实施例中,用于确定软件应用程序是否为增强存储器模式的候选者的单元可以包括:用于确定软件应用程序的大小值的单元,用于确定软件应用程序的功率消耗值的单元,用于确定软件应用程序的引导时间值的单元,用于基于大小值、功率消耗值以及引导时间值来确定费用度量值的单元,用于确定费用度量值是否超过阈值的单元,用于响应于确定费用度量值超过阈值而确定软件应用程序不是增强存储器模式的候选者的单元,以及用于响应于确定费用度量值未超过阈值而确定软件应用程序是增强存储器模式的候选者的单元。在实施例中,计算系统/设备可以包括用于识别多个候选软件应用程序的单元,用于将所识别的软件应用程序中的每个所识别的软件应用程序分类到一个或多个类别中的单元,用于基于与所识别的软件应用程序中的每个所识别的软件应用程序相关联的一个或多个类别来确定每个所识别的软件应用程序的价值值的单元,以及用于基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中的单元,其中,用于确定软件应用程序是否为增强存储器模式的候选者的单元可以包括用于基于包括在候选软件应用程序的列表中的信息来确定软件应用程序是否为以增强存储器模式操作的候选者的单元。
在另一实施例中,用于基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中的单元可以包括:用于将所识别的软件应用程序插入候选软件应用程序的有序列表中的单元,候选软件应用程序的有序列表基于所识别的软件应用程序的相关联的价值值来组织所识别的软件应用程序。
在另一实施例中,用于基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将一个或多个所识别的软件应用程序插入候选软件应用程序的列表中的单元可以包括:用于确定与所识别的软件应用程序相关联的价值值是否超过阈值的单元,以及用于响应于确定与所识别的软件应用程序相关联的价值值超过阈值而将所识别的软件应用程序插入候选软件应用程序的列表中的单元。
在另一实施例中,用于基于候选软件应用程序的列表中包括的信息来确定软件应用程序是否为以增强存储器模式操作的候选者的单元可以包括用于确定软件应用程序是否被包括在候选软件应用程序的列表中的单元。在另一实施例中,用于将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位的单元可以包括用于将标志存储在非易失性存储器中的单元。
在另一实施例中,用于将可操作以用于以增强存储器模式启用对计算系统/设备的后续引导的增强存储器模式指示符置位的单元可以包括用于将以下各项中的一项置位的单元:低功率模式指示符,快速引导时间模式指示符,快速状态转换模式指示符,或者高速执行模式指示符。在另一实施例中,用于在重新引导计算系统/设备之后确定增强存储器模式指示符是否被置位的单元可以包括:用于执行可信引导程序以安全地确定增强存储器模式指示符的存在的单元。在实施例中,计算系统/设备可以包括用于将增强存储器模式指示符从计算系统/设备的片上系统外部的组件发送到片上系统的单元。在实施例中,计算系统/设备可以包括用于接收指示计算系统/设备应退出增强存储器模式的异常的单元,以及用于响应于接收到异常而以非增强存储器模式操作计算系统/设备的单元。
在另一实施例中,用于将软件应用程序加载到NVRAM中的单元可以包括用于将软件映像从存储存储器加载到NVRAM中的单元,该软件映像被配置为在NVRAM内执行。
在另一实施例中,计算系统/设备可以包括用于将软件应用程序划分为多个软件映像的单元。在另一实施例中,用于将软件应用程序加载到NVRAM中的单元可以包括用于将多个软件映像的子集加载到NVRAM中的单元。
在另一实施例中,计算系统/设备可以包括用于识别多个软件映像中的、将从与NVRAM中的执行相关联的改进中受益最多的软件映像的单元。在另一实施例中,用于将多个软件映像的子集加载到NVRAM中的单元可以包括用于将所识别的软件映像加载到NVRAM中的单元。
各种实施例可以包括用于以功率节省模式引导片上系统(“SOC”)的方法,该方法包括读取功率节省模式指示符,创建到NVRAM的可信信道(NVRAM逻辑地连接到SOC并且在创建可信信道之前NVRAM被保护),以功率节省模式操作SOC,以及存储可操作以用于以功率节省模式启用对SOC的后续引导的指示符。在一些实施例中,功率节省模式指示符可以是存储在功率管理控制器中的标志。在一些实施例中,该方法可以包括将功率节省模式指示符从SOC外部的设备发送到SOC。在一些实施例中,该方法可以包括接收指示SOC应退出功率节省模式的异常,以及响应于接收到异常而以正常模式操作SOC。在一些实施例中,可信引导程序可以安全地确定功率节省模式指示符的存在。在一些实施例中,以功率节省模式操作SOC可以包括将软件映像从存储存储器加载到NVRAM中,软件映像被配置为在NVRAM内执行。在一些实施例中,软件映像可以包括存储在存储设备上的多个软件映像的子集,多个软件映像提供与以功率节省模式操作的软件映像相比实质上可替代的功能。
各种实施例可以包括用于以功率节省模式引导片上系统(“SOC”)的方法,包括读取功率节省模式指示符,创建到NVRAM的可信信道(NVRAM逻辑地连接到SOC并且在创建可信信道之前NVRAM被保护),以功率节省模式操作SOC,以及存储可操作以用于以功率节省模式启用对SOC的后续引导的指示符。在一些实施例中,功率节省模式指示符可以是存储在功率管理控制器中的标志。在一些实施例中,该方法可以包括将功率节省模式指示符从SOC外部的设备发送到SOC。
在一些实施例中,该方法可以包括接收指示SOC应退出功率节省模式的异常,以及响应于接收到异常而以正常模式操作SOC。在一些实施例中,可信引导程序可以安全地确定功率节省模式指示符的存在。在一些实施例中,以功率节省模式操作SOC可以包括将软件映像从存储存储器加载到NVRAM中,软件映像被配置为在NVRAM内执行。在一些实施例中,软件映像可以包括存储在存储设备上的多个软件映像的子集,多个软件映像提供与以功率节省模式操作的软件映像相比实质上可替代的功能。
各种实施例可以包括被配置为以功率节省模式操作的片上系统(“SOC”),SOC包括用于读取功率节省模式指示符的单元,用于创建到NVRAM的可信信道的单元(NVRAM逻辑地连接到SOC并且在创建可信信道之前NVRAM被保护),用于以功率节省模式操作SOC的单元,以及用于存储可操作以用于以功率节省模式启用对SOC的后续引导的指示符的单元。在一些实施例中,功率节省模式指示符可以是存储在功率管理控制器中的标志。在一些实施例中,SOC可以包括用于将功率节省模式指示符从SOC外部的设备发送到SOC的单元。在一些实施例中,SOC可以包括用于接收异常的单元,异常指示SOC应退出功率节省模式,以及用于响应于接收到异常而以正常模式操作SOC的单元。在一些实施例中,可信引导程序安全地确定功率节省模式指示符的存在。在一些实施例中,用于以功率节省模式操作SOC的单元还包括用于将软件映像从存储存储器加载到NVRAM中的单元,软件映像被配置为在NVRAM内执行。在一些实施例中,软件映像包括存储在存储设备上的多个软件映像的子集,多个软件映像提供与以功率节省模式操作的软件映像相比实质上可替代的功能。
另外的实施例可以包括其上存储有处理器可执行指令的非暂时性处理器可读存储介质,该处理器可执行指令被配置为使处理器执行与功率节省模式相关的操作,该操作包括:读取功率节省模式指示符,创建到NVRAM的可信信道(NVRAM逻辑地连接到SOC并且在创建可信信道之前NVRAM被保护),以功率节省模式操作SOC,以及存储可操作以用于以功率节省模式启用对SOC的后续引导的指示符。在一些实施例中,所存储的处理器可执行指令可以被配置为使处理器执行与功率节省模式相关的操作,其中,功率节省模式指示符是存储在功率管理控制器中的标志。在一些实施例中,所存储的处理器可执行指令可以被配置为使处理器执行与功率节省模式相关的操作,该操作包括将功率节省模式指示符从SOC外部的设备发送到SOC。在一些实施例中,所存储的处理器可执行指令可以被配置为使处理器执行与功率节省模式相关的操作,该操作包括接收异常,该异常指示SOC应退出功率节省模式,以及以正常模式操作SOC。在一些实施例中,所存储的处理器可执行指令可以被配置为使得可信引导程序安全地确定功率节省模式指示符的存在。在一些实施例中,所存储的处理器可执行指令可以被配置为使处理器执行与功率节省模式相关的操作,该操作包括将软件映像从存储存储器加载到NVRAM中,该软件映像被配置为在NVRAM内执行。在一些实施例中,所存储的处理器可执行指令可以被配置为使处理器执行操作,使得软件映像包括存储在存储设备上的多个软件映像的子集,多个软件映像提供与以功率节省模式操作的软件映像相比实质上可替代的功能。
另外的实施例可以包括被配置为以功率节省模式操作的片上系统(“SOC”),SOC包括存储设备、NVRAM以及被配置为执行操作的处理器,该操作包括:读取功率节省模式指示符,创建到NVRAM的可信信道(NVRAM逻辑地连接到SOC并且在创建可信信道之前NVRAM被保护),以功率节省模式操作SOC,以及存储可操作以用于以功率节省模式启用对SOC的后续引导的指示符。在一些实施例中,功率节省模式指示符可以是存储在功率管理控制器中的标志。在一些实施例中,处理器或SOC可以被配置为执行包括将功率节省模式指示符从SOC外部的设备发送到SOC的操作。在一些实施例中,SOC可以被配置为执行操作,该操作包括接收异常,该异常指示SOC应退出功率节省模式,以及响应于接收到异常而以正常模式操作SOC。在一些实施例中,SOC可以被配置为执行操作,使得可信引导程序安全地确定功率节省模式指示符的存在。在一些实施例中,SOC可以被配置为执行操作,使得以功率节省模式操作SOC还包括将软件映像从存储存储器加载到NVRAM中,软件映像被配置为在NVRAM内执行。在一些实施例中,SOC可以被配置为执行操作,使得软件映像包括存储在存储设备上的多个软件映像的子集,多个软件映像提供与以功率节省模式操作的软件映像相比实质上可替代的功能。在一些实施例中,处理器可以是数字信号处理器(“DSP”)、图形处理单元(“GPU”)、中央处理单元(“CPU”)或专用集成电路(“ASIC”)。在一些实施例中,SOC可以集成到便携式计算设备中。
各种实施例(包括但不限于上面参考图1至图7讨论的实施例)可以在包括移动设备800的各种计算系统/设备中的任何一个中实现,其示例在图8中示出。因此,移动设备800可以实现图5、图6和/或图7中的过程500、600和/或700。例如,移动设备800可以包括耦合到触摸屏控制器804和内部存储器802的处理器801。处理器801可以是指定用于一般或特定处理任务的一个或多个多核心集成电路(IC)。在一些实施例中,处理器801可以与上面描述的SOC 102实质上相同。内部存储器802可以是易失性或非易失性存储器,并且还可以是安全和/或经加密的存储器或不安全和/或未经加密的存储器或其任何组合。触摸屏控制器804和处理器801还可以耦合到触摸屏面板812,例如,电阻感应触摸屏、电容感应触摸屏、红外感应触摸屏等。
移动设备800可以具有彼此耦合和/或耦合到处理器801的一个或多个无线电信号收发器808(例如,
Figure BDA0002385265750000471
Wi-Fi、RF、蜂窝等)和天线810,以用于发送和接收。收发器808和天线810可以与上面提及的电路一起使用,以实现各种无线传输协议栈和接口,并且建立本文讨论的各种无线链路。移动设备800可以包括一个或多个蜂窝网络无线调制解调器芯片816,例如,一个蜂窝网络无线调制解调器芯片、两个蜂窝网络无线调制解调器芯片、三个蜂窝网络无线调制解调器芯片、四个蜂窝网络无线调制解调器芯片或者多于四个蜂窝网络无线调制解调器芯片,其实现经由一个或多个蜂窝网络的通信并且耦合到处理器801。一个或多个蜂窝网络无线调制解调器芯片816可以使得移动设备800能够从一个或多个蜂窝网络(例如,CDMA、TDMA、GSM、3G、4G、5G、LTE或任何其他类型的蜂窝网络)接收服务,以实现各种无线传输协议栈和接口,并且建立本文讨论的各种无线链路。
移动设备800可以包括耦合到处理器801的外围设备连接接口818。外围设备连接接口818可以单个地配置为接受一种类型的连接,或者多重地配置为接受公共或专有的、各种类型的物理和通信连接,例如,USB、FireWire、Thunderbolt、以太网或PCIe。外围设备连接接口818还可以耦合到类似地配置的外围设备连接端口(未示出)。移动设备800还可以包括用于提供音频输出的扬声器814。
移动设备800还可以包括由塑料、金属或材料组合构成的壳体820,用于容纳本文讨论的组件中的所有或一些组件。移动设备800可以包括耦合到处理器801的电源822,例如,一次性电池或可再充电电池。可再充电电池也可以耦合到外围设备连接端口,以从移动设备800外部的源接收充电电流。
前述方法描述和过程流程图仅作为说明性示例提供,而并不旨在要求或暗示必须以所呈现的顺序执行各种实施例的操作。如本领域技术人员将认识到的,可以以任何顺序执行前述实施例中的操作顺序。诸如“之后”、“然后”、“接下来”等之类的词语并不旨在限制操作的顺序;这些词语用于指导读者了解对方法的描述。此外,以单数形式对权利要求元素的任何引用(例如,使用冠词“一”、“一个”或“该”)不应被解释为将该元素限制为单数。
结合本文中公开的实施例描述的各种说明性逻辑块、模块、组件、电路和算法操作可以实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经对各种说明性组件、块、模块、电路和操作在其功能方面进行了总体描述。将这样的功能实现为硬件还是软件取决于特定应用和施加在整体系统上的设计约束。技术人员可以针对每个特定应用以不同方式实现所描述的功能,但是这样的实施例决策不应被解释为导致脱离权利要求的范围。
用于实现结合本文公开的实施例描述的各种说明性逻辑、逻辑块、模块和电路的硬件可以利用设计用于执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、离散门或晶体管逻辑、分立硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为接收器智能对象的组合,例如,DSP和微处理器的组合,多个微处理器,一个或多个微处理器结合DSP核心,或任何其他这样的配置。可替代地,一些操作或方法可以由特定于给定功能的电路来执行。
在一个或多个实施例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则可以将功能作为一个或多个指令或代码存储在非暂时性计算机可读存储介质或非暂时性处理器可读存储介质上。本文公开的方法或算法的操作可以体现在处理器可执行软件模块或处理器可执行指令中,处理器可执行软件模块或处理器可执行指令可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可以由计算机或处理器存取的任何存储介质。通过示例而非限制的方式,这种非暂时性计算机可读或处理器可读存储介质可以包括RAM、ROM、EEPROM、NANDFLASH、NOR FLASH、M-RAM、P-RAM、R-RAM、CD-ROM,或者其他光盘存储、磁盘存储或其他磁存储智能对象,或者可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机存取的任何其他介质。如本文使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多功能碟(DVD)、软盘和蓝光碟,其中,盘通常磁性地再现数据,而碟利用激光光学地再现数据。上述的组合也包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可以作为代码和/或指令中的一个或代码和/或指令的任何组合或代码和/或指令的集合驻留在非暂时性处理器可读存储介质和/或计算机可读存储介质上,其可以合并到计算机程序产品中。
提供对所公开的实施例的前述描述以使得本领域技术人员能够制作或使用权利要求。对于本领域技术人员而言,对这些实施例进行各种修改是显而易见的,并且本文定义的一般原理可以应用于其他实施例而不脱离权利要求的范围。因此,本公开不旨在限于本文所示出的实施例,而是符合与所附权利要求以及本文公开的原理和新颖特征相一致的最宽范围。

Claims (20)

1.一种操作计算设备的方法,包括:
确定软件应用程序是否为增强存储器模式的候选者;
响应于确定所述软件应用程序是所述增强存储器模式的候选者,将所述软件应用程序加载到非易失性随机存取存储器(NVRAM)中,并且将增强存储器模式指示符置位,所述增强存储器模式指示符可操作以用于以所述增强存储器模式启用对所述计算设备的后续引导;
在重新引导所述计算设备之后,确定所述增强存储器模式指示符是否被置位;以及
响应于确定所述增强存储器模式指示符被置位,通过开始从所述NVRAM对所述软件应用程序的执行来以所述增强存储器模式操作所述计算设备。
2.根据权利要求1所述的方法,还包括:
响应于确定所述软件应用程序不是所述增强存储器模式的候选者,将所述软件应用程序加载到易失性存储器中;以及
响应于确定所述增强存储器模式指示符未被置位,开始从所述易失性存储器对所述软件应用程序的执行。
3.根据权利要求1所述的方法,其中,确定所述软件应用程序是否为所述增强存储器模式的候选者包括:
对所述软件应用程序进行评估以生成评估结果;
基于所述评估结果来确定所述软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行;以及
响应于确定所述软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,确定所述软件应用程序是所述增强存储器模式的候选者。
4.根据权利要求1所述的方法,其中,确定所述软件应用程序是否为所述增强存储器模式的候选者包括:
确定所述软件应用程序的大小值;
确定所述软件应用程序的功率消耗值;
确定所述软件应用程序的引导时间值;
基于所述大小值、所述功率消耗值以及所述引导时间值来确定费用度量值;
确定所述费用度量值是否超过阈值;
响应于确定所述费用度量值超过所述阈值,确定所述软件应用程序不是所述增强存储器模式的候选者;以及
响应于确定所述费用度量值未超过所述阈值,确定所述软件应用程序是所述增强存储器模式的候选者。
5.根据权利要求1所述的方法,还包括:
识别多个候选软件应用程序;
将所识别的软件应用程序中的每个所识别的软件应用程序分类到一个或多个类别中;
基于与所识别的软件应用程序中的每个所识别的软件应用程序相关联的所述一个或多个类别,确定每个所识别的软件应用程序的价值值;以及
基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值,将所述一个或多个所识别的软件应用程序插入候选软件应用程序的列表中,
其中,确定所述软件应用程序是否为所述增强存储器模式的候选者包括:基于包括在所述候选软件应用程序的列表中的信息来确定所述软件应用程序是否为以所述增强存储器模式操作的候选者。
6.根据权利要求5所述的方法,其中,基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将所述一个或多个所识别的软件应用程序插入所述候选软件应用程序的列表中包括:将所识别的软件应用程序插入候选软件应用程序的有序列表中,所述候选软件应用程序的有序列表基于所识别的软件应用程序的相关联的价值值来组织所识别的软件应用程序。
7.根据权利要求5所述的方法,
其中,基于所识别的软件应用程序中的一个或多个所识别的软件应用程序的相应的价值值将所述一个或多个所识别的软件应用程序插入所述候选软件应用程序的列表中包括:
确定与所识别的软件应用程序相关联的所述价值值是否超过阈值;以及
响应于确定与所识别的软件应用程序相关联的所述价值值超过所述阈值,将所识别的软件应用程序插入所述候选软件应用程序的列表中;并且
其中,基于包括在所述候选软件应用程序的列表中的信息来确定所述软件应用程序是否为以所述增强存储器模式操作的候选者包括:确定所述软件应用程序是否被包括在所述候选软件应用程序的列表中。
8.根据权利要求1所述的方法,其中,将可操作以用于以所述增强存储器模式启用对所述计算设备的所述后续引导的所述增强存储器模式指示符置位包括:将标志存储在非易失性存储器中。
9.根据权利要求1所述的方法,其中,将可操作以用于以所述增强存储器模式启用对所述计算设备的所述后续引导的所述增强存储器模式指示符置位包括将以下各项中的一项置位:
低功率模式指示符;
快速引导时间模式指示符;
快速状态转换模式指示符;或者
高速执行模式指示符。
10.根据权利要求1所述的方法,其中,在重新引导所述计算设备之后确定所述增强存储器模式指示符是否被置位包括:执行可信引导程序以安全地确定所述增强存储器模式指示符的存在。
11.根据权利要求1所述的方法,还包括:
将所述增强存储器模式指示符从所述计算设备的片上系统外部的组件发送到所述片上系统。
12.根据权利要求1所述的方法,还包括:
接收指示所述计算设备应退出所述增强存储器模式的异常;以及
响应于接收到所述异常,以非增强存储器模式操作所述计算设备。
13.根据权利要求1所述的方法,其中,将所述软件应用程序加载到所述NVRAM中包括:
将软件映像从存储存储器加载到所述NVRAM中,所述软件映像被配置为在所述NVRAM内执行。
14.根据权利要求1所述的方法,还包括将所述软件应用程序划分为多个软件映像,其中,将所述软件应用程序加载到所述NVRAM中包括将所述多个软件映像的子集加载到所述NVRAM中。
15.根据权利要求14所述的方法,还包括识别所述多个软件映像中的、将从与NVRAM中的执行相关联的改进中受益最多的软件映像,其中,将所述多个软件映像的子集加载到所述NVRAM中包括:将所识别的软件映像加载到所述NVRAM中。
16.一种计算设备,包括:
非易失性随机存取存储器(NVRAM);以及
处理器,其耦合到所述NVRAM,其中,所述处理器配置有处理器可执行指令以执行操作,所述操作包括:
确定软件应用程序是否为增强存储器模式的候选者;
响应于确定所述软件应用程序是所述增强存储器模式的候选者,将所述软件应用程序加载到所述NVRAM中,并且将增强存储器模式指示符置位,所述增强存储器模式指示符可操作以用于以所述增强存储器模式启用对所述计算设备的后续引导;
在重新引导所述计算设备之后,确定所述增强存储器模式指示符是否被置位;以及
响应于确定所述增强存储器模式指示符被置位,通过开始从所述NVRAM对所述软件应用程序的执行来以所述增强存储器模式操作所述计算设备。
17.根据权利要求16所述的计算设备,其中,所述处理器配置有处理器可执行指令以执行操作,使得确定所述软件应用程序是否为所述增强存储器模式的候选者包括:
对所述软件应用程序进行评估以生成评估结果;
基于所述评估结果来确定所述软件应用程序是否将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行;以及
响应于确定所述软件应用程序将受益于快速启动、快速状态改变、低功率设备操作或高速代码执行,确定所述软件应用程序是所述增强存储器模式的候选者。
18.根据权利要求16所述的计算设备,其中,所述处理器配置有处理器可执行指令以执行操作,使得确定所述软件应用程序是否为所述增强存储器模式的候选者包括:
确定所述软件应用程序的大小值;
确定所述软件应用程序的功率消耗值;
确定所述软件应用程序的引导时间值;
基于所述大小值、所述功率消耗值以及所述引导时间值来确定费用度量值;
确定所述费用度量值是否超过阈值;
响应于确定所述费用度量值超过所述阈值,确定所述软件应用程序不是所述增强存储器模式的候选者;以及
响应于确定所述费用度量值未超过所述阈值,确定所述软件应用程序是所述增强存储器模式的候选者。
19.一种计算设备,包括:
用于确定软件应用程序是否为增强存储器模式的候选者的单元;
用于响应于确定所述软件应用程序是所述增强存储器模式的候选者而将所述软件应用程序加载到非易失性随机存取存储器(NVRAM)中并且将增强存储器模式指示符置位的单元,所述增强存储器模式指示符可操作以用于以所述增强存储器模式启用对所述计算设备的后续引导;
用于在重新引导所述计算设备之后,确定所述增强存储器模式指示符是否被置位的单元;以及
用于响应于确定所述增强存储器模式指示符被置位而通过开始从所述NVRAM对所述软件应用程序的执行来以所述增强存储器模式操作所述计算设备的单元。
20.根据权利要求19所述的计算设备,其中,用于确定所述软件应用程序是否为所述增强存储器模式的候选者的单元包括:
用于确定所述软件应用程序的大小值的单元;
用于确定所述软件应用程序的功率消耗值的单元;
用于确定所述软件应用程序的引导时间值的单元;
用于基于所述大小值、所述功率消耗值以及所述引导时间值来确定费用度量值的单元;
用于确定所述费用度量值是否超过阈值的单元;
用于响应于确定所述费用度量值超过所述阈值而确定所述软件应用程序不是所述增强存储器模式的候选者的单元;以及
用于响应于确定所述费用度量值未超过所述阈值而确定所述软件应用程序是所述增强存储器模式的候选者的单元。
CN201880053279.6A 2017-08-23 2018-08-22 用于在异构存储器环境内进行引导的系统和方法 Active CN110998578B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762549057P 2017-08-23 2017-08-23
US62/549,057 2017-08-23
US16/107,956 US10783252B2 (en) 2017-08-23 2018-08-21 System and method for booting within a heterogeneous memory environment
US16/107,956 2018-08-21
PCT/US2018/047421 WO2019040557A1 (en) 2017-08-23 2018-08-22 SYSTEM AND METHOD FOR STARTING IN A HETEROGENEOUS MEMORY ENVIRONMENT

Publications (2)

Publication Number Publication Date
CN110998578A true CN110998578A (zh) 2020-04-10
CN110998578B CN110998578B (zh) 2023-12-01

Family

ID=65434326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880053279.6A Active CN110998578B (zh) 2017-08-23 2018-08-22 用于在异构存储器环境内进行引导的系统和方法

Country Status (6)

Country Link
US (1) US10783252B2 (zh)
EP (1) EP3673363A1 (zh)
CN (1) CN110998578B (zh)
SG (1) SG11202000297XA (zh)
TW (1) TWI787334B (zh)
WO (1) WO2019040557A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035152A (zh) * 2020-08-24 2020-12-04 成都三零嘉微电子有限公司 一种SoC芯片固件升级的安全处理系统及方法
CN112667561A (zh) * 2020-12-29 2021-04-16 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的实现方式
CN117610025A (zh) * 2024-01-19 2024-02-27 国网信息通信产业集团有限公司 一种基于电力智能终端的嵌入式操作系统安全引导方法
CN112667561B (zh) * 2020-12-29 2024-05-31 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11621395B2 (en) * 2019-04-26 2023-04-04 Intel Corporation Resistive random-access memory devices and methods of fabrication
CN111506351A (zh) * 2020-04-03 2020-08-07 珠海市一微半导体有限公司 片上系统的深度休眠方法、唤醒方法和休眠与唤醒方法
KR20210144180A (ko) * 2020-05-21 2021-11-30 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11256811B2 (en) 2020-06-10 2022-02-22 Harman International Industries, Incorporated Secure boot at shutdown
JP2022064497A (ja) * 2020-10-14 2022-04-26 キオクシア株式会社 メモリシステム
US20220278995A1 (en) * 2021-03-01 2022-09-01 Old Dominion University Privacy-preserving online botnet classification system utilizing power footprint of iot connected devices
US20240103725A1 (en) * 2022-09-23 2024-03-28 Qualcomm Incorporated Loading multi-segmented software image files into memory using a nested file structure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013089685A1 (en) * 2011-12-13 2013-06-20 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
US20130326206A1 (en) * 2012-05-30 2013-12-05 Advanced Micro Devices, Inc. Reintialization of a processing system from volatile memory upon resuming from a low-power state

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082010A (ja) * 1998-09-04 2000-03-21 Sharp Corp アドレス変換を有するデータ処理方法および装置
JP2007156567A (ja) * 2005-11-30 2007-06-21 Toshiba Corp 情報処理装置、およびメモリ制御方法
WO2013048503A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9047090B2 (en) 2012-08-07 2015-06-02 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
US9740500B2 (en) * 2012-08-30 2017-08-22 Microsoft Technology Licensing, Llc Layout system for operating systems using BPRAM
JP2015022516A (ja) * 2013-07-19 2015-02-02 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
US10157008B2 (en) 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
KR102385552B1 (ko) * 2015-12-29 2022-04-12 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013089685A1 (en) * 2011-12-13 2013-06-20 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
US20130326206A1 (en) * 2012-05-30 2013-12-05 Advanced Micro Devices, Inc. Reintialization of a processing system from volatile memory upon resuming from a low-power state

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAN ZHONG ET AL.: "Energy-Efficient In-Memory Paging for Smartphones" *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035152A (zh) * 2020-08-24 2020-12-04 成都三零嘉微电子有限公司 一种SoC芯片固件升级的安全处理系统及方法
CN112035152B (zh) * 2020-08-24 2023-10-10 成都三零嘉微电子有限公司 一种SoC芯片固件升级的安全处理系统及方法
CN112667561A (zh) * 2020-12-29 2021-04-16 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的实现方式
CN112667561B (zh) * 2020-12-29 2024-05-31 成都旋极历通信息技术有限公司 一种在fpga中实现ufs阵列控制器的方法
CN117610025A (zh) * 2024-01-19 2024-02-27 国网信息通信产业集团有限公司 一种基于电力智能终端的嵌入式操作系统安全引导方法
CN117610025B (zh) * 2024-01-19 2024-04-05 国网信息通信产业集团有限公司 一种基于电力智能终端的嵌入式操作系统安全引导方法

Also Published As

Publication number Publication date
EP3673363A1 (en) 2020-07-01
US10783252B2 (en) 2020-09-22
TW201921257A (zh) 2019-06-01
SG11202000297XA (en) 2020-03-30
US20190065752A1 (en) 2019-02-28
CN110998578B (zh) 2023-12-01
TWI787334B (zh) 2022-12-21
WO2019040557A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
CN110998578B (zh) 用于在异构存储器环境内进行引导的系统和方法
US10762216B2 (en) Anti-theft in firmware
US9202061B1 (en) Security enclave processor boot control
US10591975B2 (en) Memory access management for low-power use cases of a system on chip via secure non-volatile random access memory
US9419794B2 (en) Key management using security enclave processor
US8775757B2 (en) Trust zone support in system on a chip having security enclave processor
US8832465B2 (en) Security enclave processor for a system on a chip
US9043632B2 (en) Security enclave processor power control
JP6137499B2 (ja) 方法および装置
JP6433198B2 (ja) 安全なブートromパッチのためのシステム及び方法
US9479331B2 (en) Managing security in a system on a chip (SOC) that powers down a secure processor
US8621195B2 (en) Disabling communication ports
JP2020030527A (ja) 記憶装置及びプログラム
WO2023096677A1 (en) Method for circumventing processor error induced vulnerability

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40025631

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant