CN110573991B - 架构状态保留 - Google Patents

架构状态保留 Download PDF

Info

Publication number
CN110573991B
CN110573991B CN201880027041.6A CN201880027041A CN110573991B CN 110573991 B CN110573991 B CN 110573991B CN 201880027041 A CN201880027041 A CN 201880027041A CN 110573991 B CN110573991 B CN 110573991B
Authority
CN
China
Prior art keywords
processor
subset
state information
storage elements
chip
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.)
Active
Application number
CN201880027041.6A
Other languages
English (en)
Other versions
CN110573991A (zh
Inventor
B·J·塞梅里亚
J·H·迈利乌斯
P·卡娜帕帝皮莱
R·F·鲁索
S-C·温
R·H·拉尔森
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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of CN110573991A publication Critical patent/CN110573991A/zh
Application granted granted Critical
Publication of CN110573991B publication Critical patent/CN110573991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0625Power saving in storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

本公开描述了用于保留架构状态以便在睡眠状态和活动操作状态之间进行相对频繁切换的系统、装置和方法。处理器接收从活动状态转变到睡眠状态的指示。处理器将架构状态信息的第一子集的副本存储在芯上存储元件中,该芯上存储元件能够在电源关闭之后保留存储。处理器支持在睡眠状态期间对特定存储信息的可编程输入/输出(PIO)访问。当检测到唤醒事件时,处理器内的电路被再次上电。不执行引导序列和从片外存储器恢复架构状态。与从由复位基地址寄存器所指向的存储器位置进行取出相反,处理器改为从由保留的架构状态信息的子集的恢复的程序计数器所指向的存储器位置取出指令。

Description

架构状态保留
技术领域
本文所述的实施方案涉及处理器领域,并且更具体地,涉及保留架构状态以用于在睡眠状态和活动操作状态之间进行相对频繁切换。
背景技术
计算系统诸如半导体芯片包括多个功能块或单元,每个功能块或单元能够处理数据。在各种实施方案中,多个功能单元是片上系统(SOC)、多芯片模块(MCM)或印刷电路板中的一者上的各个管芯。除了未检测到更多应用程序要处理以及持续时间阈值已过去之外,操作系统还确定特定处理器何时为空闲。在这种情况下,操作系统发送关闭过程的指令以供特定处理器执行以用于转变到睡眠状态。
处理器将架构状态保存至片外存储器,作为关闭过程的一部分。这样做会增加进入睡眠状态的延迟,并增加功率消耗。稍后,唤醒事件被检测到,并且处理器被供电以进行备份,从片外存储器恢复架构状态并取出存储在由复位基地址寄存器中存储的地址所指向的存储器位置中的指令。处理器开始引导序列。消耗相当长的时间量和功率以将处理器重复地置于睡眠状态,随后唤醒处理器。此外,还有大量指令用于关闭过程和上电过程。在一些情况下,处理器每秒在活动状态和睡眠状态之间转变几百次。因此,处理器的使用效率低下以及消耗了大量的功率。
发明内容
本公开设想了用于保留架构状态以便在睡眠状态和活动操作状态之间进行相对频繁切换的系统和方法。在各种实施方案中,计算系统诸如片上系统(SOC)访问外部(片外)存储器以获取一个或多个软件应用程序的指令和数据。指令和数据最初存储在高速缓存存储器子系统中,然后被SOC内的一个或多个处理器取出。在软件应用程序的处理期间,每个处理器维护各自的架构状态信息。当操作系统调度程序确定特定处理器为空闲时,除了没有更多应用程序要处理以及持续时间阈值已过去之外,调度程序开始针对特定处理器的关闭过程以转变到睡眠状态。
在各种实施方案中,在关闭过程期间,特定处理器在芯上(on-die)存储元件中存储架构状态信息的第一子集的副本。在各种实施方案中,这些保留存储元件使用球囊锁存器方案、阴影锁存器方案或类似机构来有效地存储架构状态,以便在发生后续上电序列时进行相对快的恢复。
在一些实施方案中,第一子集包括程序计数器(PC)、堆栈指针(SP)、链路寄存器(LR)、异常级别和伴随信息、软件步长值以及其他类似信息中的一者或多者。与上下文切换相反,在稍后从睡眠状态返回到活动状态时,并非所有的架构状态都会再次使用。例如,不会保留存储在整数和浮点通用寄存器(GPR)中的值,因为稍后返回到活动状态时不会再次使用这些值。相反,这些值在稍后返回到处理器活动状态时被初始化。
在实施方案中,处理器支持在睡眠状态期间对特定存储信息的可编程输入/输出(PIO)访问。可能会进行权限检查以仅允许有效访问,即使对于读取访问也是如此。当检测到唤醒事件时,处理器内的电路被再次上电。因为不需要这些步骤,所以未执行引导序列和从片外存储器恢复架构状态的步骤。在处理器被再次上电之后,而不是使用引导序列,诸如从由复位基地址寄存器所指向的存储器位置进行取出,处理器相反从由存储在保留的架构状态信息的子集的恢复的程序计数器中的地址所指向的存储器位置取出指令。在一些实施方案中,取出的指令是中断服务例程(ISR)的一部分。
参考以下描述和附图将另外理解这些和其他实施方案。
附图说明
通过结合附图参考以下描述,可更好地理解方法和机制的上文和另外的优点,在附图中:
图1是操作序列中唤醒和睡眠延迟的一个实施方案的框图。
图2是计算系统的一个实施方案的框图。
图3是保留存储元件的一个实施方案的框图。
图4是用于保留存储元件的时序图的一个实施方案的框图。
图5是用于在从处理器活动状态切换至处理器睡眠状态时保留架构状态的方法的一个实施方案的流程图。
图6为用于在处理器睡眠状态期间访问保留的架构状态的方法的一个实施方案的流程图。
图7是用于在从处理器睡眠状态切换至处理器活动状态时返回架构状态的方法的一个实施方案的流程图。
图8是系统的另一个实施方案的框图。
虽然本公开中所述的实施方案可受各种修改形式和另选形式的影响,但是其具体实施方案在附图中以举例的方式示出并将在本文详细描述。然而,应当理解,附图和对其的具体实施方式不旨在将实施方案限制为所公开的特定形式,而相反,本公开旨在涵盖落入所附权利要求书的实质和范围内的所有修改、等同物和另选方案。如在整个本专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用字词“可”。类似地,字词“包括”意味着包括但不限于。
各种单元、电路或其他部件可被描述为“被配置为”实行一个或多个任务。在此类上下文中,“被配置为”是一般意味着“具有”在操作期间实行一个或多个任务的“电路”的结构的宽泛表述。如此,即使在单元/电路/部件当前未接通时,单元/电路/部件也可被配置为执行任务。通常,形成与“被配置为”对应的结构的电路可包括硬件电路。类似地,为了描述中方便,可将各种单元/电路/部件描述为执行一个或多个任务。此类描述应当被解释为包括短语“被配置为”。表述被配置为实行一个或多个任务的单元/电路/部件明确地旨在对该单元/电路/部件不调用35U.S.C.§112(f)。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本公开中描述的实施方案的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些具体细节的情况下实践实施方案。在一些实例中,为了便于例示且避免模糊实施方案的描述,尚未详细示出众所周知的电路、结构和技术。
参考图1,示出了操作序列100中唤醒和睡眠延迟的一个实施方案的概括框图。在例示的实施方案中,使用一系列序列S1至S7来描述计算系统的不同操作周期,该计算系统保留架构状态而不存储在外部存储器中。序列在由处于活动状态的处理器执行线程时开始,转变到处理器的空闲状态和稍后睡眠状态,并且基于唤醒事件再次转变。唤醒事件使得处理器重新进入活动状态并再次执行线程。由于不在处理器外部的存储器中保留架构状态,因此减少了序列的延迟,减少了能量消耗,并且还减少了为执行转变而处理的软件指令的数量。如图所示,序列S8被缩短的序列S2替换。将序列S9从序列S5和S6之间移除。下面是对序列的描述。
在序列S1中,线程由处理器执行。处理器正在多个唤醒(活动)状态中的一个状态下运行。使用的活动状态可基于操作模式和由功率管理器所指示的功率性能状态(P状态)中的一者或多者来选择。操作系统的内核将一个或多个软件应用程序分成进程。在各种实施方案中,每个进程使用地址空间来指示存储器位置,该存储器位置用于存储应用程序的指令、应用程序的数据、堆、堆栈、架构状态信息诸如堆栈指针、通用和浮点寄存器、程序计数器等。内核进一步将进程分成线程,并确定分配给处理器的线程。内核内的操作系统调度程序执行线程的分配(调度)。尽管可在计算系统中使用多个处理器,但为了方便起见,以下描述涉及单个处理器。
在序列S2中,操作系统调度程序未检测到线程可用于执行持续相当长的时间量。在一些实施方案中,自调度程序调度最后一个线程以来,已经过可编程的阈值持续时间。内核开始将关闭过程的指令分配给处理器。在一些实施方案中,用于关闭过程的指令的数量超过3,000个指令。然而,在序列S2中,架构状态不被移动到片外存储器,并且指令的数量减少。相反,架构状态的至少一个子集被保留在芯上存储元件中。处理器放弃将架构状态信息的任何副本存储在片外存储器中。
在各种实施方案中,保留存储元件用于保留处理器内的架构状态,而不是将架构状态的副本存储在片外存储器中。保留存储元件使用触发器(主从锁存器)电路内的第三锁存器,以用于相对有效地存储和检索信息。第三锁存器由与用于触发器电路的主从锁存器的电源不同的电源来供电。在各种实施方案中,用于第三锁存器的电源使用比用于主从锁存器的电源小的供电电压量值。稍后提供了对保留存储元件的进一步描述。
因为架构状态未移动至处理器外部的存储器,所以针对关闭过程执行的指令的数量显著减少。出于示例性目的,序列S8表示将处理器架构状态传输至外部存储器诸如系统存储器(例如,DRAM)的关闭过程。序列S8显著大于其中处理器架构状态未传输至外部存储器的序列S2。
保留在芯片上而非保留在芯片外的架构状态的示例为程序计数器(PC)、堆栈指针(SP)、链路寄存器(LR)、专用寄存器(SPR)中存储的值、监管人标志、中断标志、异常级别和伴随信息、软件步长值以及其他类似信息。由于处理器正在从活动状态转变到空闲状态并进一步转变到即将到来的睡眠状态,因此并非所有的架构状态都被保留。与上下文切换相反,在稍后返回到活动状态时,并非所有的架构状态都会再次使用。例如,在各种实施方案中,不会保留存储在整数和浮点通用寄存器(GPR)中的值,因为稍后返回到活动状态时不会再次使用这些值。
在各种实施方案中,条件代码(标志)用于基于先前的(按程序顺序)指令的结果来确定如何处理指令。条件代码的一些示例为负标志(N)、零标志(Z)、承载标志(C)和溢出标志(V)。在各种实施方案中,这些条件代码不保留在序列S2中。另外,电子引信(eFuse)用于提供一次性可编程的非易失性且不可擦除的设置。这些设置的示例包括启动图像认证和加密。在各种实施方案中,这些设置也不保留在序列S2中。因此,架构状态的第一子集被保留在芯上存储元件中,而架构状态的第二子集不被保留。
除了在序列S2期间将架构状态信息的第一子集保留在芯片上之外,处理器还被关闭过程的指令所指示以同样对非架构状态信息执行片上保留。非架构状态信息的示例为用于各种加密操作的一个或多个私钥、一个或多个性能计数器、分支预测值、一个或多个错误寄存器、指示正在使用的特定外围设备的通信协议或标识符的一个或多个外围设备控制计时器和寄存器等。
在架构状态的第一子集和任何非架构状态保留在序列S2中之后,处理器被关闭过程的指令指示以刷新高速缓存存储器子系统的一个或多个级别。在一些实施方案中,关闭过程使用特定指令。例如,等待中断(WFI)指令使得处理器等待来自处理器中的线程的任何剩余的其他指令在进入空闲状态或低功率状态之前退出。WFI指令指示处理器在按程序顺序的WFI指令已退出之前确保每个显式存储器访问指令。然后,复位处理器并关闭电源开关。序列S3表示处理器中的电路达到稳态所经过的时间。序列S4表示处理器处于睡眠状态的时间量。
在处理器处于睡眠状态的序列S4期间,处理器支持存储在处理器中的特定信息的可编程输入/输出(PIO)访问。对于这些访问,处理器临时对处理器的一部分上电,执行读取或写入访问,然后对处理器的该部分下电。例如,可以访问性能计数器。还可访问保留的信息的各种其他示例。在各种实施方案中,进行权限检查以仅允许有效访问,即使对于读取访问也是如此。
在序列S5中,检测到唤醒事件并且处理器内的电路被再次上电。例如,在新的工作负载到达时,操作系统调度程序可能会检测到线程再次可供执行。如图所示,跳过引导序列和从片外存储器恢复架构状态的步骤。这些步骤由序列S9表示,该序列未包括在序列S1至S7的系列中。
在处理器被再次上电之后,而不是使用引导序列,诸如从由复位基地址寄存器所指向的存储器位置进行取出,处理器相反在序列S6中从保留的架构状态信息的第一子集的恢复的程序计数器所指向的存储器位置取出指令。因为在片外存储器中未保留架构状态信息,所以在序列S6中不存在从片外存储器中恢复的架构状态信息。
在序列S6中,处理器退出空闲状态,初始化不被保留的架构状态信息的第二子集,复位诸如用于处理器的其他部分和高速缓存控制器的控制逻辑部件,返回到活动状态并从恢复的程序计数器取出。在一些实施方案中,作为恢复的程序计数器的递增地址的地址指向中断处理程序。一旦对应的子例程完成,序列S7就开始。在序列S7中,与序列S1类似,处理器执行线程。
参考图2,示出了计算机系统200的一个实施方案的概括框图。如图所示,通信结构250在设备260、存储器270、功率管理器280和处理器组合体240之间路由流量。在各种实施方案中,计算系统200是片上系统(SOC),其在单个半导体管芯上包括多种类型的集成电路,每个集成电路提供独立的功能。在其他实施方案中,多个功能单元是封装件诸如多芯片模块(MCM)内的单独管芯。在又其他实施方案中,多个功能单元是印刷电路板上的单独管芯或芯片。
为了便于说明,图2中未示出时钟源,诸如锁相环(PLL)、各种输入/输出(I/O)接口、中断控制器等。应当指出,计算系统200的部件的数量(以及图2中所示的那些部件的子部件的数量,诸如在处理器组合体240中的每一个处理器组合体内)在不同实施方案中可变化。可存在比计算系统200中所示的数量更多或更少的每个部件/子部件。
在各种实施方案中,不同类型的流量独立地流动通过结构250。通过允许单个物理结构总线包括多个重叠虚拟信道或专用源缓冲区和目的缓冲区来实现独立流动,每个虚拟信道都携带不同类型的流量。每个信道独立地进行流量控制,而不依赖于不同信道中的事务。结构250也可为基于分组的,并且可为分级的,其中具有网桥、交叉开关、点到点或其他互连器。
功率管理器280可被配置为控制从外部功率管理单元请求的供电电压量值。可存在由计算系统200的外部功率管理单元生成的多个供电电压。
在一些实施方案中,各个部件的本地逻辑部件可控制部件的功率状态,包括上电和下电以及用于支持多于一个功率性能状态(P状态)和操作模式的那些部件的各种其他P状态和操作模式。在各种实施方案中,P状态用于确定部件所使用的工作电压和工作频率,而操作模式确定上电的子部件的数量。
在其他实施方案中,功率管理器280可控制计算系统200的其他部件的上电和下电,或者可支持针对一些部件的本地控制和由功率管理器280对其他部件的控制的组合。功率管理器280可处于直接软件控制下(例如,软件可直接请求部件的上电和/或下电)和/或可被配置为监控计算系统200并确定何时将各个部件上电或下电。
外部功率管理单元通常可包括用于生成供电电压并将那些供电电压提供给系统诸如计算系统200的其他部件、芯外(off-die)存储器270、各个片外外围设备部件(未在图2中示出)诸如显示设备、图像传感器、用户接口设备等。外部功率管理单元因此可包括可编程稳压器、用于与计算系统200交接并且更具体地与功率管理器280交接以接收电压请求的逻辑部件等。
如本文所用,术语“处理器组合体”用于表示使用本地存储装置(诸如共享高速缓存存储器子系统)并被配置为一起处理工作负载的一个或多个处理器内核的配置。另外,处理器组合体通过通信信道子系统耦接到其他部件。如图所示,处理器组合体240使用接口230来向至少处理器210A-210B提供存储器访问请求和响应。处理器组合体240还支持高速缓存存储器子系统220A-220B。在一些实施方案中,高速缓存存储器子系统220A-220B中的每一者使用处理器210A-210B的芯外二级(L2)高速缓存,并且可使用共享的L3高速缓存。高速缓存存储器子系统220A-220B的其他配置也是可能的和预期的。处理器组合体240可使用接口230与结构250进行通信。
在一些实施方案中,处理器210A-210B使用均匀架构。例如,处理器210A-210B中的每一者是通用处理器,诸如中央处理单元(CPU),其利用电路来根据预定义的通用指令集执行指令。例如,可选择
Figure BDA0002245330230000081
Figure BDA0002245330230000082
或任何其他指令集架构。在一些实施方案中,CPU内的每个内核支持软件进程的一个或多个线程的无序执行并且包括多级流水线。
在其他实施方案中,处理器210A-210B使用异构架构。在此类实施方案中,处理器210A-210B中的一者或多者为高度并行的数据架构处理器,而不是CPU。在一些实施方案中,处理器210A-210B的这些其他处理器使用单指令多数据(SIMD)内核。SIMD内核的示例为图形处理单元(GPU)、数字信号处理(DSP)内核或其他。
在各种实施方案中,处理器210A-210B中的每一者使用一个或多个内核以及一个或多个级别的高速缓存存储器子系统。处理器210A-210B使用多个一个或多个芯上级别(L1、L2、L2等)的高速缓存以用于访问数据和指令。在处理对应于软件应用程序的线程时,处理器210A-210B存储相应架构状态的副本。如图所示,架构状态存储在存储元件212A-212B中。每个架构状态的子集都能够被保留。
一般来讲,处理器210A-210B中的特定一者如果被上电,则其可为活动的。处理器可用于指令执行而几乎没有延迟(例如,其可被时钟门控,但如果指令已准备好执行,则可被取消门控)。如果处理器被下电或处于另一种低功率状态(在执行指令之前可经历显著延迟),则该处理器可为非活动的。例如,如果处理器需要复位或重新锁定锁相环(PLL),则即使其保持通电状态,也可为非活动的。
处理器210A-210B中的一者或多者可被配置为向功率管理器280提供活动水平。作为另外一种选择,处理器210A-210B内的控制单元监控活动水平并向功率管理器280发送关于要选择的操作模式的建议。当处理器210A-210B相对空闲持续相当长的时间量时,外部功率管理单元可由软件(诸如操作系统内核)指示以开始将关闭过程的指令分配给处理器210A-210B。在关闭(下电)序列期间,不会将架构状态移动到片外280。相反,架构状态的至少一个子集被保留在芯上存储元件212A-212B中。在各种实施方案中,存储元件212A-212B的子集使用球囊锁存器方案、阴影锁存器方案或类似机构来有效地存储架构状态,以便在发生后续上电序列时进行相对快的恢复。这些方案稍后在图3和图4中进一步描述。
因为架构状态未从处理器210A-210B移动到外部存储器270,所以针对关闭过程执行的指令的数量显著减少。另外,响应时间也减少。此外,关闭过程的功率消耗也降低。与上下文切换相反,在稍后返回到处理器210A-210B的活动状态时,并非所有的架构状态都会再次使用。例如,在各种实施方案中,不会保留存储在整数和浮点通用寄存器(GPR)中的值,因为稍后返回到活动状态时不会再次使用这些值。因此,架构状态的第一子集被保留在芯上存储元件中,而架构状态的第二子集不被保留。除了在关闭过程期间将架构状态信息的第一子集保留在芯上存储元件212A-212B中之外,在一些实施方案中,处理器210A-210B还被关闭过程的指令所指示以同样对非架构状态信息执行片上保留。
在一些实施方案中,处理器210A-210B继续准备进入睡眠状态,在该睡眠状态下,这些处理器将被唤醒以服务中断。执行这些步骤的一个指示是处理特定指令。在一些实施方案中,等待中断(WFI)指令使得处理器210A-210B在按程序顺序的WFI指令已退出之前等待任何剩余的其他指令,刷新一个或多个级别的高速缓存,复位和关闭电源开关。在关闭电源开关之前,处理器210A-210B保留架构状态信息的至少子集。元件212A-212B的保留存储元件使用至少两个电源。一个电源用于存储元件,诸如触发器电路和用于选择数据输入并启用或禁用时钟信号的控制逻辑部件。该电源可被关闭。另一个电源用于保留存储元件内使用的保留逻辑部件,并且未被关闭。
在实施方案中,处理器210A-210B支持在睡眠状态期间对特定存储信息的可编程输入/输出(PIO)访问。该特定信息存储在元件212A-212B的保留存储元件中。对于这些访问,处理器210A-210B临时对其部件的一部分(包括所选择的保留存储元件)上电,执行读取或写入访问,然后再次对部件下电。在各种实施方案中,进行权限检查以仅允许有效访问,即使对于读取访问也是如此。
当检测到唤醒事件时,诸如指示线程再次可用于处理的中断,处理器210A-210B内的电路被再次上电。因为不需要这些步骤,所以未执行引导序列和从片外存储器270恢复架构状态的步骤。因此,对于上电序列而言,响应时间更快并且功率消耗降低。处理器210A-210B打开电源开关。在处理器被再次上电之后,而不是使用引导序列,诸如从由复位基地址寄存器所指向的存储器位置进行取出,处理器210A-210B相反从保留的架构状态信息的子集的恢复的程序计数器所指向的存储器位置取出指令。在一些实施方案中,取出的指令是中断服务例程(ISR)的一部分。
处理器210A-210B中的每一者退出睡眠状态,初始化不被保留的架构状态信息的子集,复位诸如用于处理器的其他部分和高速缓存控制器的控制逻辑部件,返回到活动状态并从恢复的程序计数器取出。然后,处理器210A-210B再次执行线程。在继续提供关于保留架构状态的至少一个子集的进一步细节之前,提供了对计算系统200的剩余部件的进一步描述。
在各种实施方案中,外部功率管理单元确定处理器组合体240的P状态,并因此确定处理器210A-210B的相同工作电压和工作时钟频率。在实施方案中,P状态和操作模式通过功率管理器280和结构250被转发到处理器210A-210。在一些实施方案中,设备260是片上设备,诸如片上功能单元。作为另外一种选择,设备260可包括各种计算机外围设备或其他片外设备。设备260的示例为音频、视频、相机和电话控制器以及各种模拟、数字、混合信号和射频(RF)功能单元等。为了便于说明,示出了单个设备,但在各种实施方案中,可将任何数量的设备连接到结构250以用于计算系统200。
结构250和对应的接口支持多种通信协议,诸如通用串行总线(USB)、外围组件互连(PCI),包括PCI Express(PCIe)、串行和并行端口、通用I/O(GPIO)、通用异步接收器/发射器(uART)、火线接口、以太网接口、模数转换器(ADC)、数模转换器(DAC)等。其他I/O设备还可包括网络外围设备,诸如相应结构接口中的媒体访问控制器(MAC)。
处理器组合体240中的接口230使用用于片外存储器270的至少一个存储器控制器,诸如同步DRAM(SDRAM)。接口230将存储器请求存储在请求队列中,使用任何数量的存储器端口,并且使用电路,该电路被配置为使用各种协议中的一者或多者来与存储器交接,该各种协议用于与存储器信道交接,该存储器信道与用于实现存储器270的一个或多个存储器设备交接。接口230可负责信号的定时,以便正确地时钟同步DRAM存储器等。
在各种实施方案中,接口230、中断控制器(未示出)和结构250中的一者或多者使用控制逻辑部件来确保不同处理器210A-210B和设备260之间的一致性。在一些实施方案中,该电路使用高速缓存一致性逻辑部件,该逻辑部件采用高速缓存一致性协议以确保每个源访问的数据保持最新。高速缓存一致性协议的示例包括具有已修改(M)、拥有的(O)、专有(E)、共享(S)和无效(I)状态的MOESI协议。
参考图3,示出了保留存储元件300的一个实施方案的概括框图。如图所示,存储元件300接收四个输入信号并提供单个数据(Q)输出信号350。输入信号是数据(D)输入302、表示为保留304的第一控制输入、表示为启用306的第二控制输入和时钟输入308。在例示的实施方案中,存储元件300具有由时钟门控器312启用和禁用的时钟输入332、逆变器310和布尔OR逻辑门314。
如图所示,时钟输入308和332的上升沿用于允许存储元件330在启用输入306被断言时存储数据输入302上的数据。然而,在其他实施方案中,可使用时钟输入308和332的下降沿。在此,逻辑高值用于指示启用输入306被断言,但在其他实施方案中,可使用逻辑低值。类似地,逻辑低值用于指示保留控制输入304被断言,但在其他实施方案中,可使用逻辑高值。
存储元件330的数据输入322由多路复用器门320进行门控。此外,保留逻辑部件340接收存储元件330的输出350作为输入值,并将该值作为输入342提供给多路复用器门320。多路复用器门320的选择逻辑部件基于保留控制输入304。多路复用器门320接收数据输入302和保留的输入342作为输入值。尽管针对保留存储元件300示出了四个输入和一个输出,但在其他实施方案中,使用多种其他输入信号和输出信号。其他信号的示例为测试控制输入、测试输入数据、另一时钟输入、互补输出信号等。
如图所示,保留存储元件300使用两个供电电压VDD和VDD低以及两个接地值GND和GND低。在各种实施方案中,保留存储元件300使用两对电压层。第一对包括被命名为“VDD”和“GND”的电源层,并且第二对包括被命名为“VDD低”和“GND低”的电源层。在一些实施方案中,仅使用一个接地层而不是两个接地层。在其他实施方案中,使用虚拟接地层,该虚拟接地层通过轨枕栅极诸如场效应晶体管耦接到物理接地层。在实施方案中,保留逻辑部件使用供电电压VDD低,而保留存储元件300的剩余部件使用供电电压VDD。
在各种实施方案中,供电电压VDD通过电源开关耦接到电源层,该电源层允许从向保留存储元件300的部件供应任何电压量值移除供电电压VDD。相反地,在实施方案中,供电电压VDD低可直接连接到电源层并且持续向保留逻辑部件340供应电压量值。在一些实施方案中,供电电压VDD向保留存储元件300的部件提供多个供电电压量值中的一个供电电压量值。例如,由供电电压VDD提供的供电电压量值基于功率管理器所选择的功率性能状态(P状态)进行调节。在一些实施方案中,由供电电压VDD低提供的供电电压量值基于减小保留逻辑部件340内的器件(晶体管)的泄漏电流。
在各种实施方案中,存储元件330是利用主从锁存方案的多种触发器电路中的一种触发器电路。因为Q输出350上的存储值(也称为存储元件330的状态)在下电模式期间可能丢失,所以保留逻辑部件340用于保持状态。在各种实施方案中,保留逻辑部件340使用球囊锁存器方案。在其他实施方案中,保留逻辑部件340使用阴影锁存器方案。在一些实施方案中,保留逻辑部件340使用相对高的阈值晶体管,以便在这些晶体管未被下电时减少泄漏电流和对应的泄漏功率消耗。
在各种实施方案中,保留存储元件300以与下电模式重叠的保留模式工作。例如,保留模式可在下电模式实际开始之前很快开始,并且保留模式可在下电模式实际结束之后很快结束。为了提供用于保留存储元件330的状态的功能定时,在一些实施方案中,在保留模式开始之前,不允许针对保留存储元件300进行至少一至时钟周期的写入访问。此外,在保留模式结束之后,不允许针对保留存储元件300进行至少一至时钟周期的写入访问。当下电模式结束并且供电电压VDD再次向保留存储元件300的部件供应电压量值时,线342(Saved_Q)上保持的值立即可用于存储元件330中的存储。
参考图4,示出了用于保留存储元件的时序图400的一个实施方案的概括框图。在各种实施方案中,时序图400可用于图3的保留存储元件300。先前描述的信号编号相同。如前所述,保留模式与下电模式重叠。如图所示,保留模式在保留控制输入304被断言的同时发生。如前所述,保留控制输入304被断言为具有逻辑低值,但在其他实施方案中,可使用逻辑高值。这里,保留模式在时间t2和t4之间持续。下电模式430的持续时间发生在保留模式的时间窗口内,诸如所显示的时间窗口,该时间窗口是介于t2和t3之间的时间的子集。
时钟输入308正在切换,直到到达时间t1。在不久之后,在时间t2处断言保留控制输入304,该时间“锁定”保留逻辑部件中的保留存储元件的状态。再次简单地参考图3,当保留控制输入304被断言(例示实施方案中为逻辑低)时,多路复用器门320选择线342(Saved_Q)上的数据。然后,关闭电源开关,供电电压量值降低到零值,然后下电模式开始。然而,仍将电压量值供应给保留逻辑部件。
稍后,操作系统调度程序检测到应用程序再次运行,并开始上电序列。下电模式430的持续时间在达到时间t3之前结束,在时间t3处,打开电源开关,时钟信号308保持解除断言,并且对保留控制输入304解除断言。因此,保留逻辑部件中存储的保留存储元件的状态可用于提供在存储元件的输出上,从而恢复状态。再次简单地参考图3,存储在线342上的数据从时间t2至时间t4被提供在保留逻辑部件的输出线350上。球囊锁存器和阴影锁存器的各种实施方案允许基于所断言的保留控制输入304而非时钟输入308来在存储元件的输出上提供状态。
在时间t4处,保留控件304被解除断言,从而结束保留模式。在时间t5处,时钟输入308再次开始切换,并且保留存储元件内的存储元件(诸如触发器电路)再次可用于更新。尽管保留存储元件所使用的时钟输入308直到时间t5才切换,但使用另一个时钟的其他存储元件可能从时间t3到时间t4接收保留存储元件的输出线350上的保留的状态,因为保留的状态可从时间t2到时间t4可用。在允许对保留存储元件进行更新之前,其他控制逻辑部件还可在该时间段期间接收保留的状态并使用该保留的状态。在各种实施方案中,保留的状态包括架构状态的子集,并且当处理器再次唤醒以进行处理活动时,该保留的状态以多种方式中的一种方式被使用。如前所述,不被保留的架构状态的另一子集,诸如至少整数和浮点通用寄存器被初始化。在一些实施方案中,指令从由恢复的程序计数器所指向的位置取出,而不是从由复位基地址寄存器所指向的位置取出。因此,至少在时间t3和t4之间读取存储在保留存储元件中的程序计数器值。
现在参考图5,其示出了用于在从处理器活动状态切换至处理器睡眠状态时保留架构状态的方法500的一个实施方案的概括流程图。为了讨论的目的,以顺序次序示出该实施方案中(以及图6和图7中)的步骤。然而,在其他实施方案中,一些步骤可以与所示次序不同的次序发生,一些步骤可同时实行,一些步骤可与其他步骤组合,并且一些步骤可不存在。
检测到一个或多个软件应用程序可用于计算系统中的处理(框502)。操作系统的内核将一个或多个软件应用程序分成进程,分配地址空间(框504),并且进一步将进程分成线程(框506)。然后,内核将线程分配给一个或多个处理器以用于执行(框508)。内核内的操作系统调度程序执行线程的分配(调度)。在一些实施方案中,计算系统是嵌入式系统,诸如片上系统(SOC)。一个或多个软件应用程序中的每一个软件应用程序可以是可用于商务应用程序、医疗应用程序、社交媒体应用程序、多媒体回放诸如电影、歌曲录音和视频游戏等的多种应用程序中的一种应用程序。
如果仍存在任何可用线程可用于调度(条件框510的“是”分支),则方法500的控制流返回到框504,在该框处分配地址空间以供线程处理。如果不存在任何可用线程可用于调度(条件框510的“否”分支),则处理器的关闭开始(框512)。如前所述,关闭过程指示处理器采取步骤以准备进入睡眠状态。
在芯上存储元件中为处理器存储架构状态信息的第一子集的副本(框514)。在片外存储器中不存储架构状态信息的任何副本(框516)。当保留第一子集时,刷新高速缓存存储器子系统的一个或多个级别,并且关闭电源开关,针对处理器完成关闭序列,并且处理器进入睡眠状态(框518)。
现在转到图6,其示出了用于在处理器睡眠状态期间访问保留的架构状态的方法600的一个实施方案的概括流程图。检测到对处于睡眠状态的处理器的保留的信息的访问请求(框602)。如前所述,保留的信息包括架构状态信息的第一子集以及非架构状态信息。在各种实施方案中,进行权限检查以仅允许有效访问,即使对于读取访问也是如此。在一些实施方案中,在对处理器的任何部分上电之前进行权限检查。在其他实施方案中,在对处理器的一部分上电之后进行权限检查。
处理器的至少一部分被上电(框604)。识别存储访问请求中指定的保留的信息的芯上存储元件(框606)。如果访问类型是读取请求(条件框608的“读取”分支),则从芯上存储元件发送请求和保留的信息的副本(框610)。如果访问类型是写入请求(条件框608的“写入”分支),则在芯上存储元件中指定和保留的信息利用请求的写入数据来更新(框612)。当访问完成时,处理器的上电部分被再次下电(框614)。
现在参考图7,其示出了用于在从处理器睡眠状态切换至处理器活动状态时返回架构状态的方法700的一个实施方案的概括流程图。检测到处于睡眠状态的处理器的唤醒事件(框702)。不执行引导序列(框704)。如先前所述,引导序列不是必需的,因为改为使用恢复的程序计数器。
不执行从片外存储器恢复任何架构状态信息(框706)。如前所述,先前未在片外存储器中保留任何架构状态,因此没有要恢复的信息。打开电源开关,并且执行处理器的复位。从芯上存储元件恢复架构状态信息的第一子集(框708)。
先前未被保留的架构状态信息的第二子集(框710)被初始化。为线程分配地址空间(框712)。用于在处理器上进行处理的线程被调度(框714)。指令从由恢复的程序计数器所指向的位置取出,而不是从由复位基地址寄存器所指向的位置取出(框716)。在一些实施方案中,作为恢复的程序计数器的递增地址的地址指向存储中断处理程序的指令的存储器位置。一旦相应的子例程完成,就执行调度的线程。
接下来转向图8,示出了系统800的一个实施方案的框图。如图所示,系统800可表示台式计算机810、膝上型计算机820、平板电脑830、手机或移动电话840、电视850(或被配置为耦接到电视机的机顶盒)、手表或其他可穿戴物品860等的芯片、电路、部件等。其他设备是可能的并且被设想到的。在例示的实施方案中,系统800包括嵌入式处理器的至少一个实例,诸如耦接到外部存储器802的(图2的)片上系统(SOC)805。
SOC 805耦接到一个或多个外围设备804和外部存储器802。还提供了电源806,其向SOC 805供应供电电压以及向存储器802和/或外围设备804供应一个或多个供电电压。在各种实施方案中,电源806可表示电池(例如,智能电话、膝上型计算机或平板电脑中的可再充电电池)。在一些实施方案中,可以包括SOC 805的多于一个实例(也可包括多于一个外部存储器802)。
存储器802可为任何类型的存储器,诸如动态随机存取存储器(DRAM)、固态磁盘(SSD)或片外存储器的多种其他示例。一个或多个存储器设备可以耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,该设备可在芯片堆叠构型、封装堆叠构型或者多芯片模块构型中与SoC或含有IC的SOC 805一起被安装。
根据系统800的类型,外围设备804可包括任何期望的电路。例如,在一个实施方案中,外围设备804可包括用于各种类型的无线通信的设备,诸如Wi-Fi、蓝牙、蜂窝、全球定位系统等。外围设备804还可包括附加存储装置,包括RAM存储装置、固态存储装置或磁盘存储装置。外围设备804可包括用户接口设备诸如显示屏,包括触摸显示屏或多点触摸显示屏、键盘或其他输入设备、麦克风、扬声器等。
在各种实施方案中,软件应用程序的程序指令可用于实施先前所描述的方法和/或机制。程序指令可以高级编程语言(诸如C)来描述硬件的行为。另选地,可使用硬件设计语言(HDL),诸如Verilog。程序指令可存储在非暂态计算机可读存储介质上。许多类型的存储介质是可用的。在使用期间可由计算机访问存储介质,以将程序指令和附带数据提供给计算机用于程序执行。在一些实施方案中,合成工具读取程序指令,以便产生包括来自合成库的门列表的网表。
应当强调的是,上述实施方案仅是具体实施的非限制性示例。一旦充分了解了上面的公开,许多变型和修改对于本领域的技术人员而言将变得显而易见。本公开旨在使以下权利要求书被阐释为包含所有此类变型和修改。

Claims (20)

1.一种处理器,包括:
存储器接口,所述存储器接口被配置为访问片外存储器;
内核,所述内核被配置为执行指令;
多个芯上存储元件,所述多个芯上存储元件被配置为存储所述处理器的架构状态信息,其中,所述多个芯上存储元件的第一子集包括保留电路,所述保留电路被配置为:与在给定芯上存储元件内存储架构状态信息同时,存储在所述给定芯上存储元件内存储的所述架构状态信息的副本;和
控制电路,所述控制电路被配置为,至少部分地基于检测到从处理器活动状态转变到处理器睡眠状态的指示:
保留在所述多个芯上存储元件的所述第一子集中存储的架构状态信息的副本,而不在所述多个芯上存储元件和所述片外存储器中的任何一个中保留存储在所述多个芯上存储元件的第二子集中的架构状态信息;以及
将所述处理器转变到所述处理器睡眠状态。
2.根据权利要求1所述的处理器,其中响应于检测到从所述处理器睡眠状态转变到所述处理器活动状态的指示,所述控制电路被进一步配置为从所述芯上存储元件的所述第一子集检索所述架构状态信息的所述副本以用于所述架构状态信息。
3.根据权利要求2所述的处理器,其中所述控制电路被进一步配置为初始化用于存储在所述多个芯上存储元件的所述第二子集中的数据以恢复所述架构状态信息。
4.根据权利要求2所述的处理器,其中所述控制电路被进一步配置为从由所述架构状态信息的恢复的程序计数器所指向的存储器位置取出指令,而不是从由复位基地址寄存器所指向的存储器位置取出指令。
5.根据权利要求1所述的处理器,其中响应于在所述处理器处于所述处理器睡眠状态时检测到对所述架构状态信息的访问请求,所述控制电路被进一步配置为:
对所述处理器的第一部分上电;以及
识别存储所述访问请求中指定的所述架构状态信息的给定子集的所述多个芯上存储元件的所述第一子集中的一个或多个芯上存储元件。
6.根据权利要求5所述的处理器,其中响应于检测到所述访问请求是读取请求,所述控制电路被进一步配置为:
将来自所述多个芯上存储元件的所述第一子集中的所述一个或多个芯上存储元件的所述架构状态信息的所述给定子集的副本作为对所述访问请求的响应而发送;以及
对所述处理器的所述第一部分下电。
7.根据权利要求5所述的处理器,其中响应于检测到所述访问请求是写入请求,所述控制电路被进一步配置为:
利用写入数据更新所述多个芯上存储元件的所述第一子集中的所述一个或多个芯上存储元件中的所述架构状态信息的所述给定子集;以及
对所述处理器的所述第一部分下电。
8.一种由处理器执行的方法,包括:
由存储器接口访问片外存储器;
由内核处理指令;
由控制电路将所述处理器的架构状态信息存储在多个芯上存储元件中,其中,所述多个芯上存储元件的第一子集包括保留电路,所述保留电路与在给定芯上存储元件内存储架构状态信息同时,并且在检测到从处理器活动状态转变到处理器睡眠状态的指示之前,存储在所述给定芯上存储元件内存储的所述架构状态信息的副本;和
响应于检测到从所述处理器活动状态转变到所述处理器睡眠状态的所述指示:
由所述控制电路保留在所述多个芯上存储元件的所述第一子集中存储的架构状态信息的副本,而不在所述多个芯上存储元件和所述片外存储器中的任何一个中保留存储在所述多个芯上存储元件的第二子集中的架构状态信息;以及
由所述控制电路将所述处理器转变到所述处理器睡眠状态。
9.根据权利要求8所述的方法,还包括响应于检测到从所述处理器睡眠状态转变到所述处理器活动状态的指示,从所述芯上存储元件的所述第一子集检索所述架构状态信息的所述副本以恢复所述架构状态信息。
10.根据权利要求9所述的方法,还包括:在检索所述芯上存储元件的所述第一子集的所述副本之后,初始化用于存储在所述多个芯上存储元件的所述第二子集中的数据以恢复所述架构状态信息。
11.根据权利要求10所述的方法,还包括:在初始化所述多个芯上存储元件的所述第二子集之后,从由所述架构状态信息的恢复的程序计数器所指向的存储器位置取出指令,而不是从由复位基地址寄存器所指向的存储器位置取出指令。
12.根据权利要求9所述的方法,响应于检测到从所述处理器睡眠状态转变到所述处理器活动状态的所述指示,所述方法还包括放弃引导序列。
13.根据权利要求9所述的方法,还包括在所述处理器活动状态期间,向所述多个芯上存储元件的所述第一子集的所述保留电路提供第一电压,所述第一电压小于提供给所述多个芯上存储元件的第二子集的第二电压。
14.根据权利要求8所述的方法,其中响应于在所述处理器处于所述处理器睡眠状态时检测到对所述架构状态信息的访问请求,所述方法还包括:
对所述处理器的第一部分上电;以及
识别存储所述访问请求中指定的所述架构状态信息的给定子集的所述多个芯上存储元件的所述第一子集中的一个或多个芯上存储元件。
15.根据权利要求14所述的方法,其中响应于检测到所述访问请求是读取请求,所述方法还包括:
将来自所述多个芯上存储元件的所述第一子集中的所述一个或多个芯上存储元件的所述架构状态信息的所述给定子集的副本作为对所述访问请求的响应而发送;以及
对所述处理器的所述第一部分下电。
16.根据权利要求14所述的方法,其中响应于确定所述访问请求是写入请求,所述方法还包括:
利用写入数据更新所述多个芯上存储元件的所述第一子集中的所述一个或多个芯上存储元件中的所述架构状态信息的所述给定子集;以及
对所述处理器的所述第一部分下电。
17.一种计算系统,包括:
片外存储器,所述片外存储器用于存储一个或多个软件应用程序的指令和数据;
多个芯上存储元件,所述多个芯上存储元件被配置为存储处理器的架构状态信息,其中,所述多个芯上存储元件的第一子集包括保留电路,所述保留电路被配置为:与在给定芯上存储元件内存储架构状态信息同时,存储在所述给定芯上存储元件内存储的所述架构状态信息的副本;
处理器,所述处理器被配置为,至少部分地基于检测到从处理器活动状态转变到处理器睡眠状态的指示:
访问所述片外存储器;
保留在所述多个芯上存储元件的所述第一子集中的架构状态信息的副本,而不在所述多个芯上存储元件和所述片外存储器中的任何一个中保留存储在所述多个芯上存储元件的第二子集中的架构状态信息;以及
将所述处理器转变到所述处理器睡眠状态。
18.根据权利要求17所述的计算系统,其中所述处理器被进一步配置为至少部分地基于检测到从所述处理器睡眠状态转变到所述处理器活动状态的指示,从所述芯上存储元件的所述第一子集检索所述架构状态信息的所述副本以恢复所述架构状态信息。
19.根据权利要求18所述的计算系统,其中所述处理器被进一步配置为初始化用于存储在所述多个芯上存储元件的所述第二子集中的数据以恢复所述架构状态信息。
20.根据权利要求18所述的计算系统,其中所述处理器被进一步配置为从由所述架构状态信息的恢复的程序计数器所指向的存储器位置取出指令,而不是从由复位基地址寄存器所指向的存储器位置取出指令。
CN201880027041.6A 2017-04-25 2018-04-24 架构状态保留 Active CN110573991B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/496,290 US10990159B2 (en) 2017-04-25 2017-04-25 Architected state retention for a frequent operating state switching processor
US15/496,290 2017-04-25
PCT/US2018/029211 WO2018200578A1 (en) 2017-04-25 2018-04-24 Architected state retention

Publications (2)

Publication Number Publication Date
CN110573991A CN110573991A (zh) 2019-12-13
CN110573991B true CN110573991B (zh) 2023-06-09

Family

ID=62148501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880027041.6A Active CN110573991B (zh) 2017-04-25 2018-04-24 架构状态保留

Country Status (4)

Country Link
US (1) US10990159B2 (zh)
KR (1) KR102372786B1 (zh)
CN (1) CN110573991B (zh)
WO (1) WO2018200578A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200114017A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
US11693699B2 (en) * 2020-07-02 2023-07-04 Apple Inc. Hybrid memory in a dynamically power gated hardware accelerator
CN113406945B (zh) * 2021-05-26 2022-11-18 东风电驱动系统有限公司 一种宽域频率唤醒信号处理方法及装置
US11972117B2 (en) * 2021-07-19 2024-04-30 EMC IP Holding Company LLC Selecting surviving storage node based on environmental conditions
US20240028222A1 (en) * 2022-07-22 2024-01-25 Dell Products L.P. Sleep mode using shared memory between two processors of an information handling system
CN116701041B (zh) * 2023-07-27 2023-11-10 飞腾信息技术有限公司 一种内存数据保留方法、保留装置和相关设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577823B2 (en) * 2002-07-03 2009-08-18 Nxp B.V. Wake-up and sleep conditions of processors in a multi-processor system
US7058829B2 (en) 2002-08-14 2006-06-06 Intel Corporation Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU
US7062606B2 (en) * 2002-11-01 2006-06-13 Infineon Technologies Ag Multi-threaded embedded processor using deterministic instruction memory to guarantee execution of pre-selected threads during blocking events
US7117319B2 (en) * 2002-12-05 2006-10-03 International Business Machines Corporation Managing processor architected state upon an interrupt
US8694976B2 (en) 2003-12-19 2014-04-08 Intel Corporation Sleep state mechanism for virtual multithreading
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US8762692B2 (en) * 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US7719876B2 (en) * 2008-07-31 2010-05-18 Unity Semiconductor Corporation Preservation circuit and methods to maintain values representing data in one or more layers of memory
US8578138B2 (en) * 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US8364857B2 (en) 2009-08-31 2013-01-29 Qualcomm Incorporated Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network
WO2013015924A1 (en) * 2011-07-26 2013-01-31 Marvell World Trade Ltd. Zero power hibernation mode with instant on
US9182999B2 (en) * 2012-05-30 2015-11-10 Advanced Micro Devices, Inc. Reintialization of a processing system from volatile memory upon resuming from a low-power state
US9383812B2 (en) 2012-09-28 2016-07-05 Intel Corporation Method and apparatus for efficient store/restore of state information during a power state
US9262322B2 (en) * 2013-09-17 2016-02-16 Advanced Micro Devices, Inc. Method and apparatus for storing a processor architectural state in cache memory
WO2016010857A1 (en) * 2014-07-18 2016-01-21 Apple Inc. Raise gesture detection in a device
US9426750B2 (en) 2014-07-29 2016-08-23 Apple Inc. Apparatus, system, and method for parallelizing UE wakeup process

Also Published As

Publication number Publication date
CN110573991A (zh) 2019-12-13
WO2018200578A1 (en) 2018-11-01
KR20190134693A (ko) 2019-12-04
KR102372786B1 (ko) 2022-03-08
US10990159B2 (en) 2021-04-27
US20180307297A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
CN110573991B (zh) 架构状态保留
US11079261B2 (en) System on a chip with always-on processor
US10915160B2 (en) System on a chip with fast wake from sleep
EP3011450B1 (en) Dynamic voltage and frequency management based on active processors
US10261894B2 (en) System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
CN110109527B (zh) 动态电压裕度恢复
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
TW201508480A (zh) 控制處理器功率消耗之數位功率評估器
US8892922B2 (en) Voltage detection
US10423206B2 (en) Processor to pre-empt voltage ramps for exit latency reductions
US20170068575A1 (en) Hardware Migration between Dissimilar Cores
US10552323B1 (en) Cache flush method and apparatus
JP7495422B2 (ja) 適応的な相互接続ルーティングのためのシステム、装置及び方法
US20160216756A1 (en) Power management in computing devices

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
GR01 Patent grant
GR01 Patent grant