低功率处理器状态的自主核心周界

文档序号:118968 发布日期:2021-10-19 浏览:24次 >En<

阅读说明:本技术 低功率处理器状态的自主核心周界 (Autonomous core perimeter for low power processor states ) 是由 亚历山大·根德勒 约尼·艾孜克 陈·雷内尔 伊多·埃拉姆 爱德华·维伯曼 于 2020-02-28 设计创作,主要内容包括:实施例包括自主核心周界,其被配置为在处理器封装被置于低功率状态中之前,保存多核心处理器的核心的状态。每个核心的自主核心周界被配置为,将微控制器固件的镜像(如果其先前尚未被另一核心保存的话)与该核心的微控制器的独特工作状态信息一起保存到外部存储库。在恢复时,单个微控制器固件镜像与每个核心的独特工作状态一起被从外部存储库取回并且被推送到每个核心。(Embodiments include an autonomous core perimeter configured to preserve a state of a core of a multi-core processor before a processor package is placed in a low power state. The autonomous core perimeter of each core is configured to save an image of the microcontroller firmware (if it has not been previously saved by another core) to an external repository along with the unique operating state information of the microcontroller of that core. Upon recovery, a single microcontroller firmware image is retrieved from an external memory bank and pushed to each core along with the unique operating state of each core.)

具体实施方式

现代处理器可包括多个处理核心,其中每个处理核心能够进入各种低功率状态中。随着各种状态向更激进的省电方向发展,越来越多的处理器组件可能被断电。此外,除了每个核心具有多个功率状态以外,整个封装(例如在多核心处理器封装中)也可具有多个功率状态。更深/更激进的封装状态可经由功率门控机制将整个核心断电。多核心处理器可被配置有多个电力轨道来为不同的组件供电,并且这些各种电力轨道中的一个或多个(例如,所有)在一些实现方式中能够被功率门控。

许多采用微体系结构的现代处理器使用与每个核心相关联的微控制器来处理核心的各种任务,例如将ISA操作解码为内部微操作,管理核心寄存器文件(其可包括内部或瞬时寄存器),缓存管理,以及提供各种其他内部核心功能。在一些实施例中,固件可被核心的微控制器执行以使能这些任务;在一些情况中,这个固件可被认为是一种简装的操作系统(OS)。与许多操作系统一样,该固件也可能要求某种形式的本地存储来维护各种工作状态的信息,例如临时寄存器文件、瞬时机器状态和情形、允许指令重新排序的缓冲器,等等。在实施例中,微控制器包括在制造时或者在系统组装前被预加载并且在处理器初始化时自动加载的固件。这个固件可被称为“微代码”。另外,一些实现方式还可允许经更新的固件(其可被称为“acode”或“a代码”),以被动态加载到每个核心中(与存储在只读存储器中的固定微代码相反),从而允许在处理器的生命周期内对固件(以及因此对核心)进行改进、修补和其他调整。在一些示例中,当机器OS(例如Microsoft)启动时,可经由操作系统驱动器来更新a代码固件。

多核心处理器的每个核心通过各种总线与内部和外部模块进行通信。另外,多核心处理器的各种组件可按不同的时钟频率进行操作。例如,个体核心可能能够以几千兆赫(GHz)的时钟速度运行和执行指令。每个核心的其他组件可能以在几百兆赫(MHz)的范围内的较慢的时钟速度运行。这些各种组件可经由一个或多个内部总线被联系在一起。取决于由给定总线互连的组件,总线可按从几百MHz到几GHz的速度进行操作。作为一般原则,给定的总线需要以允许经由该总线连接的所有组件在该总线上进行可靠通信的速度来进行操作。从而,互连在GHz范围内操作的内部核心组件的总线可能能够在GHz范围内操作,而互连在MHz范围内操作的一个或多个组件的总线可能需要在MHz范围内操作。

给定总线的宽度(例如串行、8比特、64比特、256比特等等)可依据各种因素而变化,例如连接的组件的能力、总线速度、总线传输类型(例如,串行或并行)、以及可用的管芯空间。对于给定的时钟速度,宽的并行总线通常可比窄的或串行的总线传输更多的数据。相反,与更宽和/或更长的总线相比,更窄的总线、串行总线和/或更短长度的总线通常可被以更高的时钟速度来驱动。互连核心内的内部组件的总线通常是相对更高速度和/或更宽的总线,以允许在核心内快速、低时延地传送数据。将核心与外部组件相接口的总线(例如,核心间通信、与处理器管芯之外的组件(例如外部缓存存储器、主系统存储器、和输入/输出(I/O)子系统)的通信)的运行速度通常可能是内部核心总线的速度的几分之一。

由于这些总线限制,与核心内的通信相比,给定的核心和外部组件之间的通信通常会招致显著的时延,其中,核心内的通信可能会被在相对高速/宽的总线上处理。从而,依赖核心外部的存储装置来维持工作状态信息和/或固件可能会导致不可接受地缓慢的处理器性能。因此,每个处理器核心可依赖于被定位在核心内的存储装置(例如动态随机访问存储器(DRAM)或其他适当的存储器文件或单元)来维护工作状态信息以及动态加载的固件镜像两者的数据。存储装置可被定位在宽/快的内部总线上,以尽量减小时延。

由于其性质,DRAM和类似的存储器类型经常要求恒定的电力来确保存储的内容得以保留;电力的丢失会导致数据丢失。当核心以及随后微处理器封装被置于更深的省电状态中时,为存储器供电的电力轨道可被功率门控。因此,当核心被从更高的功率状态转变到更低的功率状态(其中核心执行被暂停或以其他方式被停机)时,如果为存储器供电的电力轨道将被门控,则工作状态和/或固件镜像可能需要被保留到核心之外的存储装置。如果不能这样做,就可能导致处理器实际上在电力恢复时被重置,其中固件镜像需要被重加载并且处理器被重初始化。这样的过程,在最好的情况下,会导致每次处理器被置于省电模式中时出现不可接受的延迟,并且在最坏的情况下,会导致处理器无法在不招致系统重启的情况下被置于低功率模式中。

在处理器被供电时将工作状态和/或固件保存到外部存储装置,允许了处理器被置于低功率状态中。核心内存储装置可被断电(随之而来的是信息丢失),并且随后在加电时被恢复到其工作状态,而不需要完全重初始化每个核心。然而,如上所述,从核心或处理器封装外部的存储装置访问和恢复信息会招致显著的时延。虽然这种时延在相对不频繁的基础上往往是可容忍的,但采用这种微处理器的系统设计者为了实现可接受的性能可能需要放弃将微处理器置于低功率状态中(不然低功率状态可有助于保护便携设备中的电池寿命),但代价是更大的功耗(并且在移动实现方式的情况下,还有相关联的电池寿命减短)。

保存和后续恢复时的时延时间通常与必须从外部存储装置取回并恢复到每个核心的数据量有关。如上所述,数据可包括两个主要成分:每个处理器核心的工作状态信息,以及固件镜像的拷贝。在这两个成分中,工作状态信息在大多数实现方式中对于每个处理器核心是独特的,而固件镜像在所有核心间是相同的。另外,与固件镜像相比,工作状态信息包括相对较少的数据量。将要传送的数据量限制到最小量可有助于将时延时间保持在最低限度。从而,通过将数据传送限制到固件镜像的仅单个拷贝以及针对每个核心的独特工作状态信息,可将在深度省电状态的边界发生的保存和恢复的时延时间保持在最低限度,从而允许更频繁地将处理器置于深度省电状态中,同时仍然维持可接受的性能。

所公开的实施例包括针对自主核心周界的系统和装置。自主核心周界与多核心微处理器的核心相关联,并且适于在持有微控制器状态信息和固件镜像的核心结构与一个或多个外部(核心外部)总线和存储器单元之间进行接口。当核心被发信号通知转变到更低功率状态时,自主核心周界协调保存微控制器状态信息。另外,自主核心周界确定固件镜像是否已被保存,并且如果尚未被另一核心保存,则保存固件镜像。类似地,当核心被发信号通知返回到更高功率状态时,自主核心周界协调取回和恢复固件镜像的拷贝和微控制器状态信息,允许核心重新继续执行。在一些实施例中,固件镜像可以能够被从外部存储库取回一次,并且同时被读取到每个处理器核心中,以防止固件镜像的多次传送。在一些实施例中,多核心处理器的每个核心包括其自己的关联分立自主核心周界。在其他实施例中,多个核心可附接到单个自主核心周界,该自主核心周界适于协调存储和取回每个附接核心的独特状态信息,以及在返回到更高功率状态时分发给所有附接核心的固件镜像的单个拷贝。

在本文的描述中,利用本领域技术人员通常用来将其工作的实质传达给本领域的其他技术人员的术语来描述说明性实现方式的各种方面。然而,本领域技术人员将会明白,只利用描述的方面中的一些也可实现本公开的实施例。为了说明,记载了具体数字、材料和配置以提供对说明性实现方式的透彻理解。然而,本领域技术人员将会清楚,没有这些具体细节也可实现本公开的实施例。在其他情况下,省略或简化了公知的特征以免模糊说明性实现方式。

在接下来的详细描述中,参考了附图,附图形成本文的一部分,其中相似的标号始终指定相似的部件,并且在附图中以说明方式示出了可实现本公开的主题的实施例。要理解,在不脱离本公开的范围的情况下,可利用其他实施例并且可做出结构或逻辑上的改变。因此,接下来的详述描述不应被从限制意义上来理解,并且实施例的范围由所附权利要求及其等同物来限定。

对于本公开而言,短语“A或B”的意思是(A)、(B)或者(A和B)。对于本公开而言,短语“A、B或C”的意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或者(A、B和C)。

描述可使用基于视角的描述,例如顶/底、进/出、上/下,等等。这样的描述只是被用来方便论述,而不是为了将本文描述的实施例的应用限制到任何特定方向。

描述可使用短语“在一实施例中”或者“在实施例中”,它们各自可以指一个或多个相同或不同实施例。此外,对于本公开的实施例使用的术语“包括”、“包含”、“具有”等等是同义的。

图1根据各种实施例描绘了包括多个自主核心周界逻辑的示例系统100。在一个实施例中,系统100包括具有多个核心102a至102f(总体上或者在不考虑特定核心的情况下称为核心102)的多核心处理器。在本实施例中,每个核心102a至102f分别与自主核心周界逻辑103(ACP 103)耦合。每个核心102还包括微控制器112,该微控制器112也被耦合以与ACP103进行通信,并且可以是ACP 103的一部分。核心102a至102f中的每一个由电路104a至104f(总体上或者在不考虑特定核心的情况下称为电路104;在图1中缩写为Cx)耦合到管芯中(或管芯内)接口(IDI)106。在实施例中,基于将处理器置于低功率状态中的信号或者由该信号触发,电路104a至104f中的每一者都适于将核心102a至102f中的每一者的微控制器112停机,从多个核心102a至102f中的第一核心的微控制器112保存固件代码,并且从核心102a至102f中的每一者的微控制器112保存状态信息。应当理解,虽然描绘了六个核心102a至102f和相应的电路104a至104f,但这个数字是任意的。各种实施例可具有任何数目的核心102a至102f以及电路104a至104f。

系统100中的每个核心102可作为处理核心,执行被从系统100外部的存储装置加载的软件指令的一个或多个线程。在一些实施例中,每个核心102可以是特定于应用的,例如嵌入式微控制器。在其他实施例中,每个核心102可以是通用性质的,例如可被用于通用计算机中(其可被实现为计算设备1300,在此参考图6进行描述),比如服务器、桌面型电脑或膝上型电脑。每个核心102可实现特定的指令集体系结构(instruction setarchitecture,ISA),例如英特尔的x86-64指令集或者ARM的指令集。系统100中的每个核心102可执行相同类型的ISA,从而系统100当被实现为计算机的微处理器时,可执行为ISA编写的多个软件线程。在其他实施例中,一个或多个核心102可执行与其他核心不同的ISA,从而系统100能够同时或几乎同时执行为两个或更多个不同ISA编写的软件。在另外一些实施例中,一个或多个核心102可以是特定于应用的或特定于功能的,其中系统100具有一个或多个核心102用于通用执行,并且具有一个或多个核心102专用于特定功能,例如OS管理、硬件管理、对系统100的各种内部结构的管理、或者类似的特定功能。

在实施例中,每个核心102能够被置于多个功率状态中。例如,给定的核心102可包括C0状态,其中核心是活跃的,并且要么正在处理,要么空闲但准备好进行处理;C3状态,其中核心被断电,但核心周界组件保持被供电并且准备好将核心转变回C0状态;以及C6状态,其中核心以及至少一些核心周界组件也被断电。取决于实施例,核心周界的一部分可在C6状态中保持被供电,以允许该部分在唤醒信号下为核心102的其余部分重新供电,或者整个核心周界可与核心102一起被断电。在整个核心和核心周界被断电的情况下,核心102可能需要依赖于外部逻辑来使核心脱离C6状态。其他功率状态可以是可能的,这取决于给定实现方式的要求和可用的电力轨道,其中核心102的各种块可被置于各种活动或省电模式中。

在实施例中,每个核心102包括自主核心周界逻辑或者简单的核心周界,即,ACP103,它包括专用于特定核心102的组件,但不执行ISA指令的实际处理。ACP 103可包括功率管理代理110,微控制器112,以及本地存储装置,例如随机访问存储器(RAM)114。每个核心102可包括其他组件,例如主处理块。在此将参考图2更详细描述每个核心102的这些和其他组件。

在描绘的实施例中,每个核心102的ACP 103与电路104耦合,而电路104进而又将核心102和ACP 103与IDI 106耦合,以允许核心102、ACP 103和系统100的其他组件之间的通信,包括系统100外部的设备,例如输入/输出(I/O)端口、扩展端口、分立图形处理器(discrete graphics processor,dGPU)、以及计算机系统(例如计算设备1300)的其他组件。在实施例中,电路104将ACP 103与IDI 106通信地联系起来。如下文所述,与系统100内可能存在的其他架构和总线相比,IDI 106在核心102和其他组件(包括存储器存储库108)之间提供了相对较高的速度(就时钟速度而言)和宽阔的通路。在实施例中,电路104可在不同程度上协调将固件和状态数据传送到核心102或从核心102传送,无论是自行进行还是与核心102和/或ACP 103的其他组件合作。在实施例中,与通过边带总线或者可能具有显著较慢的时钟和/或较窄的总线宽度的另一通道传送数据相比,通过将ACP 103与IDI 106相联系,可以用最低限度的时延来完成从核心102及其ACP 103保存固件和状态信息。

电路104可以是ACP 103的一部分,在一些实施例中,可以是核心102内的独立组件或模块,可以是核心102内的另一模块的一部分(其本身可被视为ACP 103的一部分),或者可以是前述任何一者的组合。在一些实施例中,电路104被配置为,在指出系统100的封装正被置于或者可被置于低功率状态(该低功率状态将会导致微控制器112被去电)中的通知之后,自主地处理或以其他方式协调保存微控制器112固件(如果尚未被保存的话,如将在此论述的那样)和状态信息。如果在通知和系统100的实际断电之间存在延迟,则每个电路104可能够在封装断电之前保存其关联的核心102的核心固件(如果尚未被存储)和状态信息,从而避免在系统100转变到低功率状态时施加不希望的时延。正如本文将更详细描述的那样,在系统100的断电被中止的情况下,电路104也可使得核心102在保存状态后但在断电前至少部分重新继续执行,而不是将核心102保持在停机状态中。

如图1的实施例中所描绘的,电路104可具体地将其关联的核心102的功率管理代理110与IDI 106联系起来。在这样的实施例中,功率管理代理110可被认为是ACP 103的一部分。在另外一些实施例中,电路104可包括它自己的控制逻辑,该控制逻辑可运行一种类型的固件或软件。电路104可与功率管理代理110协调来将其关联的核心102的一个或多个组件转变到不同的功率状态。在一些实施例中,电路104协调功率管理代理110的一个或多个组件(例如,微控制器112)的去电。

电路104可将固件和状态信息保存到存储器存储库108中,该存储器存储库108被指定用于一个或多个核心和/或系统100封装的低功率状态。虽然被描绘为在系统100内,但在一些实施例中,存储器存储库108位于系统100封装的外部,或者以其他方式位于与系统100的其他组件分开的电力轨道或电力域上,以确保系统100的断电不会使存储器存储库108断电。被描绘为与IDI 106耦合以提供固件和状态信息的低时延和高带宽存储的存储器存储库108可以是动态RAM(DRAM)类型,要求持续的电力以刷新存储器内容。在一些实施例中,存储器存储库108可以是将系统100用于处理器的计算机或设备上的主系统存储器的一部分,并且可与操作系统被共享并且/或者关联运行的应用和进程。存储器存储库108可以是从操作系统或运行的进程中窃取或以其他方式分配的主系统存储器的一部分,并且被预留来在系统100被转变到低功率状态时使用。在其他实施例中,存储器存储库108可以是单独的和/或专用的存储器单元,专门用于保存固件和每个核心102的工作状态信息。

在实施例中,IDI 106是系统100的接口和内部通信总线,其允许了在系统100的各种组件之间(例如在核心102、任何缓存存储器和/或系统100的其他要求高带宽、低时延的组件之间)进行相对高速的低时延数据传送。在一个实施例中,IDI 106以范围在几百兆赫到几千兆赫的时钟速度运行,并且可与给定核心102的最大时钟速度相匹配。IDI 106也可以是比较宽的;在一个实施例中,IDI 106是256比特宽的。其他实施例可使用更窄或更宽的总线宽度,这取决于具体实现方式的需要。与系统100内可能存在的其他内部总线相比,IDI106可显著更快。其他内部总线可具有几百兆赫的最大时钟速度,和/或小于64比特、32比特、16比特或更小的宽度,这取决于总线的预期目的。IDI 106的宽阔带宽可允许固件和状态信息以最小的时延被传送到外部存储器,例如存储器存储库108。

在实施例中,功率管理代理110负责在功率状态之间转变其关联的核心102,例如如上所述的状态C0、C3和(在一些实现方式中)C6。因此,功率管理代理110可被配置为对核心102的各种组件进行功率门控,例如开启或关闭。功率管理代理110可包括微控制器112,以及存储装置114(被描绘为RAM单元)。在实施例中,微控制器112负责提供功率管理代理110的至少一些功能。在其他实施例中,微控制器112也可以额外地或者替换地向核心102的处理核心提供功能,在此参考图2对其进行进一步描述。存储装置114可被微控制器112和/或功率管理代理110用于存储微控制器固件以及工作状态信息两者,例如,寄存器值、微控制器112的内部状态、临时数据,等等。此外,功率管理代理110可包括有限状态机(未描绘),以在功率状态与转变所需的必要步骤之间进行协调和转变。存储装置114也可被该有限状态机用于跟踪当前机器状态。

除了每个核心102a至102f具有多个功率状态以外,系统100作为一个整体可也具有多个功率状态。例如,系统100的一个实施例可包括:PkgC0状态,其中封装的所有组件都被供电(或者能够被供电);PkgC3状态,其中一些组件(例如每个核心102a至102f)被断电并且每个核心外部的一些组件(例如,非核心)可能被断电;以及PkgC6状态,其中基本上所有封装组件被断电,实际上关闭了整个系统100。在一些实施例中,封装控制单元(packagecontrol unit,PCU)116、另一组件或者其一部分可保持以最低功率,以允许封装被从PkgC6状态唤醒。在其他实施例中,例如在PkgC6实际上关断了整个系统100的情况下,系统100可能需要被系统100外部的某个电路或组件从PkgC6状态中唤醒。

在实施例中,PCU 116可起到协调系统100的各种功能的作用,例如对各种总线的管理、封装功率状态转变、组件功率状态的发信号通知、时钟控制和更改、以及系统100的操作的其他必要任务。PCU 116可位于各种核心102a至102f之外,因此构成系统100的“非核心”的部分,即系统100上的如下各种组件:这些组件在一个或多个核心102的外部,但可支持一个或多个核心102。在描绘的实施例中,PCU 116经由IDI 106与系统100的各种组件进行通信。在其他实施例中,取代IDI 106或者除了IDI 106以外,PCU 116还可通过其他总线与一个或多个组件进行通信。在另外一些实施例中,PCU 116可与系统100的一个或多个组件直接通信。

系统100可被实现为单个物理封装,例如片上系统(SoC)配置。在实现使用系统100的移动产品时,SoC配置可以是有利的。除了图1中描绘的各种组件以外,在这样的SoC或系统100的其他实施例中,还存在其他逻辑块,例如存储器管理器、图形子系统、外围总线管理器、I/O管理器、功率调节器或管理器、和/或任何其他逻辑块,以使得单个物理封装能够提供利用系统100的计算机系统的所有或基本上所有功能。为了便于理解所公开的实施例,这些组件被省略了。或者,系统100可以是具有多个物理封装的系统的一个组件,例如通用多核心处理器连同支持芯片组。芯片组可包括北桥芯片和南桥芯片,以及其他组件,例如存储器、存储器管理单元(如果没有被集成到北桥芯片中)、图形子系统、外设管理单元、以及适合于给定实现方式的其他组件。

转到图2,更详细地描绘了核心102的组件。在所描绘的实施例中,核心102包括核核心(nucleus core)202。构成核心周界的其他组件包括架构接口逻辑(fabric interfacelogic,FIL)204和关联的气泡生成先进先出(first-in-first-out,FIFO)BGF 214,功率管理代理(power management agent,PMA)206和关联的微控制器216和RAM 218(如上文参考图1所论述),一个或多个电力输送轨道208,锁相环(phase locked loop,PLL)210,以及数字热传感器(digital thermal sensor,DTS)212。如所表明的,这些组件可构成上文所述的ACP 103的至少一部分。将在下面论述其他描绘的组件和连接。

在实施例中,核核心202包括进行一个或多个软件线程的执行的逻辑和其他各种组件。这些结构可依据给定处理器实现方式的细节而变化。核核心202可包括诸如以下结构:一个或多个算术逻辑单元、浮点单元、转化后备缓冲器、分支预测器、寄存器文件、多路复用器、解码器、缓存、以及其他这种组件。各种结构可被组织成一个或多个多级流水线,以优化指令吞吐量。核核心202可能够以几千兆赫的速度运行,并且可实现优于每时钟周期一个操作的指令吞吐量(例如,超标量性能)。

在实施例中,核核心202经由通过FIL 204与ACP 103的一个或多个组件以及IDI106进行通信。经由连接器224来描绘这种连接。FIL 204可被配置为提供连接“架构”(其中各种组件经由连接的网状结构进行通信耦合),该连接架构可能使得连接的组件能够通过FIL 204直接通信,例如点对点通信。FIL 204也可经由连接器222连接到PMA 206。虽然没有描绘,但FIL 204可进一步连接到核心102内的其他组件,以促进核心内的通信。可经由其他内部总线进行这些其他连接,这些其他内部总线可以按不同的速度运行并且具有不同的数据宽度。在这种实施例中,FIL 204可协调对在以不同时钟速度运行的组件之间进行的数据传送的缓冲。

在图2的实施例中,FIL 204内包括BGF 214,即气泡生成FIFO(先进先出)。BGF 214被配置为允许进入或来自核心102的各种内部总线的数据以不同的时钟速度和/或数据宽度进行操作。在这个方面,BGF 214可包括缓冲能力,允许在来自高带宽总线(例如,IDI106)的突发之间暂时存储数据,直到数据可被完全传送到低带宽总线上为止;类似地,它可存储从低带宽总线传输的数据,直到获得足够的数量来允许其被突发传送到高带宽总线(例如,IDI 106)上为止。

如上所述,PMA 206可处理管理核心功率状态(例如C0、C3和C6),包括在各种功率状态之间转变,以及对内部组件(例如,核核心202、PLL 210、DTS 212和/或其他模块)进行功率门控。在实施例中,PMA 206经由连接器222连接到FIL 204。连接器222可包括内部总线,其带宽可与IDI 106相同或不同。当连接器222与IDI 106相比运行速度更慢和/或更窄时,经由连接器222去到或来自PMA 206的数据可通过BGF 214到达IDI 106,其中BGF 214处理时钟域和带宽差异之间的转变,如上所述。PMA 206还包括微控制器216和RAM 218,类似于参考图1描绘的微控制器112和RAM 114。在图2所描绘的实施例中,PMA 206还可经由边带接口(sideband interface,SI)220进行通信。SI 220可连接到与IDI 106类似的结构,但允许带外信令而不消耗IDI 106的带宽,特别是当信令的有效载荷大小相对较小时。SI 220可在核心102内连接,和/或可连接到一个或多个非核心组件,例如封装控制单元116、其他功率控制或管理模块,等等。

在实施例中,微控制器216协调核心102的一个或多个组件的运作。例如,微控制器216可向核核心202提供控制信令。取决于核核心202的具体体系结构,微控制器216也可提供指令转化和/或解码,其中核心102的ISA中的指令被转化成一个或多个微操作,以供核核心202执行。例如,核核心202的一些实现方式可采用简化或缩减的指令集,这种指令集只提供基元操作,但可被高速执行。在核核心202进行处理之前,系统100的ISA的指令被微控制器216分解或者在微控制器216的控制下被分解成这些基元操作。同样,微控制器216可协调将核核心202进行执行的任何数据或其他结果格式化为符合系统100的ISA的数据或结构。如上文关于图1所建议,微控制器216还可协调和/或控制核心102的其他组件的操作,例如ACP 103的一个或多个组件。这些功能可包括经由PMA 206进行的功率转变,对FIL 204(和关联的BGF 214)的配置和管理,时钟速度(经由PLL 210),基于感测到的状况(例如由DTS212检测到的过热状况)对核核心202的性能的扼制,对各种核心内总线(例如连接器222和224)的管理,以及用于管理核心102的操作的任何其他适当任务。

虽然被描绘为PMA 206的一部分,但在其他实施例中,微控制器216可以是核心102的单独模块或组件。在另外一些实施例中,RAM 218可以是微控制器216的一部分,或者可以是核心102的分立组件或单独模块。

如上所述,微控制器216在执行期间可利用诸如RAM 218之类的存储装置。当核心102被停机时,包括将微控制器216停机时,RAM 218的内容可能需要被保留,以确保微控制器216可从停机点重新继续执行,从而允许核心102在被置于诸如C6或PkgC6之类的省电状态中之后从其停机点重新继续执行。取决于RAM 218的具体实现方式,RAM 218可能要求持续电力以维持其内容(例如DRAM)。虽然也可使用非易失性存储器存储装置,但它可能无法提供与DRAM相同的性能。在用DRAM实现RAM 218的情况下,其内容必须在将核心102完全断电之前被拷贝到外部存储装置,该外部存储装置是与核心102(并且可能与系统100,如上所述)被分开供电的。在这样的实现方式中,将核心102完全断电也会导致RAM 218被去电,从而丢失其内容。如果RAM 218的内容没有被保留,那么微控制器216将无法从断电前的点重新继续其执行。因此,核心102将需要被重初始化,引入潜在的时延和/或数据丢失。

RAM 218还可包括微控制器216的固件镜像。由于微控制器216在实施例中本质上是一种特定用途的计算机,因此它可经由固件运行一种形式的最低限度的或特定于应用的操作系统,该操作系统控制核心102如何工作。在一些实施例中,此固件可被硬编码或刻录到微控制器216中,或者到核心102内的另一个适当的结构中。此外,如上所述,一些实施例可允许将新的或经更新的固件加载到核心102中。在一些实施例中,在加电和初始化系统100以及核心102之后和/或作为加电和初始化系统100以及核心102的一部分,这种新的或经更新的固件可被计算机的BIOS、固件或操作系统动态地加载。在一些实施例中,这个动态加载的固件被置于RAM 218的一部分中。与工作状态信息一样,此固件镜像必须在RAM 218断电之前被存储在核心102的外部。如果不能这样做,就要求计算机或其操作系统在核心102的重初始化之后重加载新的固件,这在一些实现方式中可能是不可行的,因此要求整个计算机/操作系统被重启动。

电力输送轨道208可包括一个或多个电力轨道,以向核心102内的各种组件供应电力。在电力输送轨道208包括多个轨道的情况下,每个轨道可携带不同的电力规格,例如,不同的电压,不同的电流容量,等等,这取决于连接到给定轨道的组件的要求。此外,可采用多条轨道(携带相同的电力或不同规格的电力),以允许核心102的组件的子集被功率门控。例如,核核心202可被放置在单个电力轨道208上,FIL 204可被放置在另一条轨道上,并且PMA206(带微控制器216)可被放置在另外一条轨道上。PMA 206和/或微控制器216可被配置为对电力输送轨道208的各种轨道进行功率门控。在这样的实施例中,PMA 206可对核核心202进行功率门控(例如当核心102被置于C3状态中时),同时维持对FIL 204、PMA 206、微控制器216和RAM 218的供电。在这样的状态中,传入的消息可被FIL 204处理,而不需要对核核心202加电,并且PMA 206与微控制器216可维持对功率门的控制。

作为锁相环的PLL 210在实施例中为核心102提供时钟服务。这些时钟服务可包括针对不同组件的不同时钟速度。例如,核核心202可能要求高达数千兆赫的速度,而FIL 204可能只要求几百兆赫的时钟速度。微控制器216可能要求另外一种时钟速度。另外,PLL 210可允许依据核心102的具体性能要求,提高或扼制提供给各种组件的时钟速度。

数字热传感器DTS 212可被配备给核心102,以监视其内部温度状况。当核核心202和/或核心102的其他组件被重度加载和/或受到高时钟速度的影响时,它们生成的热量可能超过系统100的封装所能耗散的热量。因此,内部温度将随着热量的积累而上升,并且可能超过系统100的热极限,这有可能导致系统100或者其一个或多个组件的损坏。DTS 212在检测到接近或超过设计极限的温度状况时,可以使得核核心202(和/或其他组件)的速度至少暂时被扼制,以使热量的生成下降到可被系统100的封装安全耗散的水平。在一些实施例中,这种扼制是经由微控制器216来处理的,微控制器216接受来自DTS 212的数据作为输入,并进而控制PLL 210来扼制核核心202的速度。在其他实施例中,DTS 212可在控制或反馈环路中直接耦合到PLL 210,在这种情况下,感测到的过热状况将自动使得PLL 210扼制时钟速度。

将会理解,系统100(以及关联的核心102a至102f)可体现为通用处理器,适合用于各种消费设备,例如电话、平板设备、手表、服务器、膝上型电脑、桌面型电脑、网络设备、嵌入式系统、和其他类似的实现方式。示例处理器可包括但不限于各种微处理器,例如可用于通用计算的通用处理器,和/或特制的微处理器,例如专门用于处理数字信号的,更具体而言,专门用于处理数字音频信号的。示例可包括iAPX系列、ARM系列、MIPS系列、SPARC系列、PA-RISC系列、POWER系列的处理器,或者现在已知的或以后开发的任何其他适当的处理器体系结构。还有一些实施例可将专用集成电路(ASIC)或现场可编程门阵列(FPGA)用于至少一部分组件,例如FIL 204、微控制器214、PMA 206、和ACP 103的其他组件。

还应理解的是,在系统100的一些实施例中,各种组件可使用各种不同的安排,包括不同的类型,只要给定的实现方式维持任何必要的功能。例如,系统100的一些部分可被实现为软件(例如微控制器112/216的固件),而其他部分则被用硬件实现。应当明白,图1和图2中的各种块只是功能的逻辑描述;各块的实际实现可因实施例而异,不同块的功能可能被分割或组合成一个或多个软件和/或硬件模块。一些组件可被省略或移动到其他位置,这取决于给定的实现方式。

在图3中,描绘了用于在可能将处理器的封装转变到低功率状态时保存微控制器固件和工作状态信息的示例方法300的操作。方法300的操作可被全部或部分执行,并且可由系统100和/或核心102的一个或多个组件执行,例如由自主核心周界103的一个或多个组件执行,包括PMA 110/206。一些操作或操作的一些部分可由系统封装执行,该系统封装在实施例中可包括系统100及其物理封装,例如,系统封装可以是单个物理封装,比如SoC。应当根据前文对图1和图2的论述,包括前文对系统100和核心102的各种组件的功能的描述,来阅读以下内容。

从操作302开始,接收对于保存状态的信号,例如由ACP 103的组件接收。该信号可由系统100内部的组件发送,例如PCU 116,和/或可源自系统100的外部,例如源自外部功率管理器或者系统BIOS或固件。可经由管芯内接口接收该信号,或者可经由边带或者带外总线或信令通道接收该信号。

在操作304中,微控制器被停机,例如由ACP 103停机。PMA 206可协调微控制器的停机。将微控制器停机——至少是暂时停机——可能是可取的,以确保微控制器的工作状态在其处于被保存的过程中时不会改变。

在操作306中,确定用于微控制器的固件镜像是否已被保存到外部存储库,例如存储器存储库108。如上所述,固件镜像,特别是在系统启动时动态加载的a代码,通常在所有核心中是相同的,并且进一步要求比每个微控制器的工作状态多得多的存储。从而,从每个核心存储相同的固件拷贝是冗余的,不必要的,而且浪费了存储资源。此外,必须在核心之外传送到外部存储装置的数据量越大,在将系统100转变到低功率状态时所带来的时延量就越大。可通过只保存固件镜像的单个拷贝(例如从第一核心(在多核心系统中)保存固件镜像的单个拷贝以保存其状态),来节省这种时延。在操作306中,可利用系统100内的标志或其他信令机制来指示出核心之一是否已经保存了固件镜像的拷贝。可能的信令的一些示例包括设置系统100中所有核心可访问的寄存器或标志,断言向所有核心指示出固件镜像已被保存的线路(例如在内部总线上),经由内部总线向所有核心推送标志或通知,或者以任何其他方法向每个核心的ACP发出信号来表明固件镜像已被保存并且不需要被再次保存。

如果对操作306的回答是“是”,表明固件镜像还没有被保存到外部存储装置,则方法300继续进行操作308,在这里共享的固件镜像被推送到外部存储装置。这可由ACP 103完成,该ACP 103使用电路104对固件镜像进行格式化并将其放置到IDI 106上。如上所述,在实施例中,镜像可经由FIL 204、通过BGF 214被格式化并放置到IDI 106上。一旦固件镜像已被保存,其他核心就会被用信号通知这一事实,如上所述,使得其他的保存不会被尝试。在实施例中,ACP 103和/或FIL 204可获得外部存储装置中的一个或多个地址,以推送固件镜像和(在下面的操作310中)工作状态信息。

可使用任何适当的技术获得此地址信息,例如从存储器管理器、封装控制单元、操作系统、存储器存储单元、或者其他来源获得此地址信息。在一些实施例中,此地址信息可作为数据块或者适合于IDI和任何支持电路的给定实现方式的其他适当格式,通过IDI 106来被接收。在存储固件镜像之前,可获得初始地址信息。在实施例中,可由ACP 103获得并且通过IDI 106接收此初始地址信息。

取决于实现方式,固件可能只需要在采用系统100的计算机系统被加电时被保存一次。例如,在固件镜像在启动时被加载并且除此以外从未改变的情况下,固件镜像的拷贝可被(例如,被操作系统)保留在系统存储装置中。在其他实现方式中,固件镜像可只被保存一次,即,在第一次保存第一核心的状态信息时。在任一个这样的实现方式中,对于系统到低功率状态的后续转变,可能永远不会遵循“是”路径,因为固件镜像至少在计算机系统保持被供电的持续时间期间就简单地保留在系统存储器中。

在操作308完成之后,或者如果操作306的结果导致“否”路径(例如,固件已经被保存或不需要被保存),核心的工作状态信息类似地被推送到外部存储装置,经由与上文关于操作306描述的固件镜像相同的机制。

一旦工作状态信息被保存,在操作312中,微控制器就可被解除停机。由于系统向低功率状态的转变可能被中止,所以如果系统向低功率状态的转变被中止,则微控制器可能需要将其核心从停机或低功率阶段带回来。如果系统完成了向低功率状态的转变,则微控制器可随后被功率门控。在一些实施例中,可省略操作312,例如在系统立即着手将封装断电的情况下。

可理解的是,微控制器的工作状态在(在操作310中)存储工作状态的时间和微控制器最终被功率门控的时间之间可能发生变化。然而,这些变化可被忽略。如果微控制器被功率门控,则其工作状态将被恢复到被推送到外部存储装置的状态,该状态是基于何时(在操作302中)接收到对于保存状态的信号的预期点。预期微控制器在工作状态的保存和功率门控之间不会招致任何重大的状态变化。相反,如果向低功率状态的转变被中止,那么核心和关联的微控制器将继续正常执行,并且推送到外部存储装置的工作状态可被忽略,因为它将在下一次执行操作302时被新的工作状态所覆盖。

在实施例中,固件镜像和工作状态被存储到系统100外部的存储单元中,因此可允许系统100进入深度省电状态,在这种状态中系统100被完全或几乎完全断电。如上所述,存储单元仍保持被供电。如上文参考图1所论述的,存储单元可以是从操作系统和/或应用(特别是当一个或多个应用正被休眠时)中窃取或以其他方式分配的主系统存储器的一部分。

虽然方法300被描绘为由单个核心执行,但方法300可由系统100中的每个核心执行,该执行可以是串行的、并行的、或者串行和并行执行的组合。

转到图4,描绘了用于在可能将处理器的封装转变到低功率状态时恢复微控制器固件和工作状态信息的示例方法400的操作。方法400的操作可被全部或部分执行,并且可由系统100和/或核心102的一个或多个组件执行,例如由自主核心周界103的一个或多个组件执行,包括PMA110/206。与方法300一样,可在封装或系统封装级别上进行一些操作或操作的一些部分,特别是在系统100被实现为SoC的情况下可在单个封装中进行。应当根据前文对图1和图2的论述,包括前文对系统100和核心102的各种组件的功能的描述,来阅读以下内容。

从操作402中开始,接收到对于唤醒系统封装(例如系统100)的信号。取决于封装被置于多深的省电状态,此信号可能需要来自系统外部的来源。在其他实施例中,外部信号可以首先被发送到封装控制单元,该封装控制单元进而又向系统中的每个核心发信号通知开始恢复状态并转变到更高的功率水平。处理这些信号的机制可以有所不同,这取决于给定实现方式的具体细节,以及系统内的哪些组件处理功率门控和为系统封装供电。操作402的一部分可包括为每个核心中的核心周界(例如ACP 103)的至少一部分供电,然后该部分可承担在其关联核心上执行方法400的剩余操作的责任。

在接收到唤醒信号后,在操作404中,共享固件与核心的独特工作状态信息一起被从外部存储装置中取回。取决于给定实现方式的具体细节,多个核心中的一个核心可协调对共享固件的取回,该共享固件可被放置到管芯内接口上或者以其他方式被缓冲到系统中。这样,共享的固件镜像只需要被从外部存储装置取回一次;然后它可在系统内部被拷贝到所有核心。

在操作406中,固件被推送到每个核心,并且具体来说,可被推送到与每个核心的每个微控制器相关联的存储装置中。这种推送可由自主核心周界(包括将ACP连接到IDI的电路)来处理。在其他实施例中,这种推送可至少部分由非核心结构(例如,不位于特定核心内的组件)来处理。与存储一样,处理恢复固件的ACP或其他结构可获得外部存储装置内的一个或多个地址以从适当的来源定位共享的固件镜像(该一个或多个地址可以以数据块或其他适当的格式通过诸如IDI 106之类的IDI被传输),如上文关于操作306所述。

在操作408中,类似于操作406,独特的工作状态被推送到每个核心,以类似于共享固件镜像的方式。与操作406一样,可获得每个独特工作状态的地址,并且将其提供给每个核心的ACP,以分别从外部存储器拉取工作状态信息。

最后,在操作410中,一旦共享固件镜像和独特工作状态信息已被推送到每个核心并且被放置到每个微控制器的关联存储装置中,每个核心就可被转变到更高功率、操作性更强的状态。

本领域技术人员将会明白,本公开可被体现为方法或计算机程序产品。因此,本公开除了如先前所述那样被用硬件来体现以外,还可采取如下形式:完全软件的实施例(包括固件、常驻软件、微代码,等等),或者组合了软件和硬件方面的实施例(其可被概括统称为“电路”、“模块”或“系统”)。此外,本公开可采取体现在任何有形或非暂态表达介质中的计算机程序产品的形式,在该介质中体现有计算机可使用程序代码。图5图示了可适合用于存储指令的示例计算机可读非暂态存储介质,响应于装置对所述指令的执行,所述指令使得该装置实现本公开的选定方面。如图所示,非暂态计算机可读存储介质1202可包括若干个编程指令1204。编程指令1204可被配置为使得设备能够(例如系统100和/或一个或多个核心102)响应于编程指令的执行而实现上述方法300和/或400(的一些方面)。另外,可经由执行编程指令1204的微控制器112来实现核心102的各种组件的一些方面。可以用编程指令1204来实现固件镜像。在替换实施例中,编程指令1204可改为被布置在多个计算机可读非暂态存储介质1202上。在其他一些实施例中,编程指令1204可被布置在计算机可读暂态存储介质1202上,例如信号。

可以利用一个或多个计算机可使用或计算机可读介质的任何组合。计算机可使用或计算机可读介质可以例如但不限于是电的、磁的、光的、电磁的、红外的或半导体的系统、装置、设备或传播介质。计算机可读介质的更具体示例(非详尽列表)将包括以下各项:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、传输介质(例如支持互联网或内联网的那些)、或者磁存储设备。注意,计算机可使用或计算机可读介质甚至可以是其上打印有程序的纸或另一适当介质,因为程序可经由例如对纸或其他介质的光学扫描被电子捕捉,然后在必要时被以适当的方式编译、解释或者以其他方式处理,并随后被存储在计算机存储器中。在本文档的上下文中,计算机可使用或计算机可读存储介质可以是任何可包含、存储、传达、传播或传输程序供指令执行系统、装置或设备使用或与之结合使用的介质。计算机可使用介质可包括在基带中或者作为载波一部分传播的数据信号,其中体现了计算机可使用程序代码。可利用任何适当的介质来传输计算机可使用程序代码,包括但不限于无线的、有线的、光缆、RF,等等。

可以用一种或多种编程语言的任何组合来编写用于执行本公开的操作的计算机程序代码,所述编程语言包括面向对象的编程语言,比如Java、Smalltalk、C++等等,还包括传统的过程式编程语言,比如“C”编程语言或者类似的编程语言。程序代码可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可通过包括局域网(LAN)或广域网(WAN)在内的任何类型的网络连接到用户的计算机,或者可以与外部计算机进行连接(例如,利用互联网服务提供商通过互联网进行)。

参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开。将会理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在经由计算机或其它可编程数据处理装置的处理器执行时,产生了用于实现流程图和/或框图的一个或多个方框中指定的功能/动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可指引计算机或其他可编程数据处理装置以特定方式工作,从而使得存储在计算机可读介质中的指令产生出包括实现流程图和/或框图的一个或多个方框中规定的功能/动作的指令装置的制造品。

也可以把计算机程序指令加载到计算机或者其他可编程数据处理装置上以使得一系列操作步骤在该计算机或其他可编程装置上被执行来产生计算机实现的过程,使得在该计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个方框中指定的功能/动作的过程。

图6根据各种实施例图示了可采用本文描述的装置和/或方法(例如,系统100、核心102、方法300和/或方法400)的示例计算设备1300。如图所示,计算设备1300可包括若干个组件,例如一个或多个处理器1304(示出了一个)和至少一个通信芯片1306。在各种实施例中,一个或多个处理器1304各自可包括一个或多个处理器核心。在各种实施例中,至少一个通信芯片1306可在物理上和电气上耦合到一个或多个处理器1304。在另外的实现方式中,通信芯片1306可以是一个或多个处理器1304的一部分。在各种实施例中,计算设备1300可包括印刷电路板(PCB)1302。对于这些实施例,一个或多个处理器1304和通信芯片1306可被布置在PCB 1302上。在替换实施例中,可在不采用PCB 1302的情况下耦合各种组件。

取决于其应用,计算设备1300可包括其他组件,这些组件可与或不与PCB 1302物理地和电气地耦合。这些其他组件包括但不限于:存储器控制器1305,易失性存储器(例如,动态随机访问存储器(DRAM)1308),非易失性存储器(例如只读存储器(ROM)1310),闪存1312,存储设备1311(例如,硬盘驱动器(HDD)),I/O控制器1314,数字信号处理器(未示出),密码处理器(未示出),图形处理器1316,一个或多个天线1318,显示器(未示出),触摸屏显示器1320,触摸屏控制器1322,电池1324,音频编解码器(未示出),视频编解码器(未示出),全球定位系统(GPS)设备1328,罗盘1330,加速度计(未示出),陀螺仪(未示出),扬声器1332,相机1334,以及大容量存储设备(例如硬盘驱动器、固态驱动器、致密盘(CD)、数字多功能盘(DVD))(未示出),等等。在各种实施例中,处理器1304可与其他组件一起被集成在同一管芯上以形成片上系统(SoC)。

在一些实施例中,一个或多个处理器1304、闪存1312和/或存储设备1311可包括存储编程指令的关联固件(未示出),该编程指令被配置为使得计算设备1300能够响应于由一个或多个处理器1304执行编程指令而实现本文描述的方法的所有或选定方面。在各种实施例中,可额外地或替代地使用与一个或多个处理器1304、闪存1312或存储设备1311分开的硬件来实现这些方面。

在各种实施例中,计算设备1300的一个或多个组件可包括系统100或核心102,和/或可实现本文描述的方法300和/或方法400的一个或多个操作。例如,系统100或核心102可被实现在处理器1304、通信芯片1306、I/O控制器1314、存储器控制器1305和/或计算设备1300的另一组件中。

通信芯片1306可使能有线和/或无线通信,用于去往和来自计算设备1300的数据的传送。术语“无线”及其衍生词可被用于描述可通过使用经调制的电磁辐射通过非固态介质来传输数据的电路、设备、系统、方法、技术、通信信道,等等。该术语并不意味着关联的设备不包含任何线路,虽然在一些实施例中它们可能确实不包括。通信芯片1306可实现若干种无线标准或协议中的任何一种,包括但不限于:IEEE 702.20,长期演进(Long TermEvolution,LTE),LTE高级版(LTE Advanced,LTE-A),通用封包无线电服务(GeneralPacket Radio Service,GPRS),演进数据优化(Evolution Data Optimized,Ev-DO),演进高速封包接入(Evolved High Speed Packet Access,HSPA+),演进高速下行链路封包接入(Evolved High Speed Downlink Packet Access,HSDPA+),演进高速上行链路封包接入(Evolved High Speed Uplink Packet Access,HSUPA+),全球移动通信系统(GlobalSystem for Mobile Communications,GSM),GSM演进的增强数据速率(Enhanced Datarates for GSM Evolution,EDGE),码分多址接入(Code Division Multiple Access,CDMA),时分多址接入(Time Division Multiple Access,TDMA),数字增强无绳电信(Digital Enhanced Cordless Telecommunications,DECT),微波接入全球互通(Worldwide Interoperability for Microwave Access,WiMAX),蓝牙,其衍生物,以及被指定为3G、4G、5G及以上的任何其他无线协议。计算设备1300可包括多个通信芯片1306。例如,第一通信芯片1306可专用于较短程的无线通信,例如Wi-Fi和蓝牙,并且第二通信芯片1306可专用于较长程的无线通信,例如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO及其他。

在各种实现方式中,计算设备1300可以是膝上型电脑、上网本、笔记本、超极本、智能电话、计算平板、个人数字助理(PDA)、超便携PC、移动电话、桌面型计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏机或汽车娱乐单元)、数字相机、家电、便携式音乐播放器、或者数字视频记录器。在另外的实现方式中,计算设备1300可以是任何其他处理数据的电子设备。

附图中的流程图和框图图示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现方式的体系结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一模块、片段或者代码的一部分,所述模块、片段或代码的一部分包括用于实现指定的(一个或多个)逻辑功能的一个或多个可执行指令。也应当注意,在一些替换实现方式中,方框中标注的功能也可以按不同于附图中标注的顺序发生。例如,取决于所涉及的功能,接连示出的两个方框实际上可被基本同时执行,或者方框有时可按相反顺序被执行。还要注意,框图和/或流程图的每个方框、以及框图和/或流程图中的方框的组合,可以由执行指定的功能或动作的专用的基于硬件的系统来实现,或者可以由专用硬件和计算机指令的组合来实现。

本文使用的术语只是为了描述特定实施例,而并不打算成为对本公开的限制。就本文使用的而言,单数形式“一”、“某”和“该”打算也包括复数形式,除非上下文明确地另有指示。还要理解,术语“包括”和/或“包含”当在本说明书中被使用时指明了所记述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。

实施例可被实现为计算机过程、计算系统或者实现为诸如计算机可读介质的计算机程序产品之类的制造品。计算机程序产品可以是可被计算机系统读取并且编码了用于执行计算机过程的计算机程序指令的计算机存储介质。

所附权利要求中的所有装置或步骤加功能元素的对应结构、材料、动作和等同物打算包括用于如具体要求保护的那样与其他要求保护的元素结合执行该功能的任何结构、材料或动作。本公开的说明书是出于说明和描述的目的而给出的,而并不打算是穷尽无遗的或者限于所公开形式的公开。在不脱离本公开的范围和精神的情况下,本领域普通技术人员将清楚许多修改和变化。选择和描述实施例是为了最好地说明本公开的原理和实际应用,并且使得本领域的其他普通技术人员能够理解本公开来实现具有适于所设想的特定用途的各种修改的实施例。

示例

以下示例属于进一步实施例。

示例1包括一种多核心处理器,包括两个或更多个核心,每个核心包括微控制器并且耦合到自主核心周界逻辑;以及与每个自主核心周界逻辑通信的电路,其适于,基于接收到将所述处理器置于低功率状态中的信号,将所述两个或更多个核心中的至少一者的微控制器停机,从所述两个或更多个核心中的第一核心的微控制器保存固件代码,并且从所述两个或更多个核心中的每一者的微控制器保存状态信息;并且所述电路还适于,基于接收到将所述处理器从所述低功率状态返回的信号,将所述固件代码恢复到所有所述核心;并且将相应的状态信息恢复到每个核心。

示例2包括如示例1或者这里的一些其他示例所述的主题,其中所述电路与存储器单元通信,并且将所述固件代码和状态信息存储到所述存储器单元。

示例3包括如示例1或2或者这里的一些其他示例所述的主题,其中所述电路通过管芯内接口与所述存储器单元通信。

示例4包括如示例1-3中的任一项或者这里的一些其他示例所述的主题,其中所述电路包括功率管理代理。

示例5包括如示例1-4中的任一项或者这里的一些其他示例所述的主题,其中所述电路还利用气泡生成先进先出(FIFO)结构与所述存储器单元通信。

示例6包括如示例1-5中的任一项或者这里的一些其他示例所述的主题,其中所述自主核心周界逻辑包括架构接口逻辑。

示例7包括如示例1-6中的任一项或者这里的一些其他示例所述的主题,其中所述处理器包括片上系统(SoC)。

示例8包括如示例1-7中的任一项或者这里的一些其他示例所述的主题,其中在所述固件代码和相应的状态信息已被保存之后,所述电路重新继续所述微控制器。

示例9包括一种非暂态计算机可读介质(CRM),包含可由处理器中的电路执行的指令,所述指令当被执行时使得所述电路将核心周界逻辑中所包含的微控制器停机,所述核心周界逻辑与多个处理核心中的第一处理核心相关联,其中所述多个处理核心中的每一者与核心周界逻辑相关联并且共享共同的微控制器固件代码;从所述周界逻辑的微控制器保存状态信息;确定所述微控制器固件代码是否已被保存;并且如果所述微控制器固件代码尚未被保存,则从所述周界逻辑的微控制器保存所述微控制器固件代码。

示例10包括如示例9或者这里的一些其他示例所述的主题,其中所述指令还使得所述电路一旦至少所述状态信息已被保存,则重新继续所述微控制器。

示例11包括如示例9或10或者这里的一些其他示例所述的主题,其中所述指令还使得所述电路将所述状态信息和微控制器固件代码保存到存储器单元。

示例12包括如示例9-11中的任一项或者这里的一些其他示例所述的主题,其中所述指令将由所述电路在接收到将所述处理器置于低功率状态中的信号之后执行。

示例13包括如示例9-12中的任一项或者这里的一些其他示例所述的主题,其中所述指令还使得所述电路:在接收到从所述低功率状态唤醒所述处理器的信号之后,从所述存储器单元为所述周界逻辑取回所述固件代码和所述状态信息;将所述固件代码和所述状态信息恢复到所述周界逻辑的微控制器;并且重新继续所述微控制器。

示例14包括如示例9-13中的任一项或者这里的一些其他示例所述的主题,其中所述指令还使得所述电路在接收到中止将所述处理器置于低功率状态中的信号之后,重新继续所述微控制器。

示例15包括如示例9-14中的任一项或者这里的一些其他示例所述的主题,其中所述指令还使得所述电路接收管芯内接口架构接口逻辑数据块,该数据块包括存储器单元内的用于存储所述固件代码和状态信息的位置;并且针对所述周界逻辑将所述固件代码和所述状态信息从所述存储器单元存储到所述存储器单元位置。

示例16包括一种用于管理多核心处理器上的功率状态的系统,包括多个核心,每个核心耦合到自主核心周界;电路,适于存储固件代码和每个自主核心周界的状态信息;以及与所述电路进行数据通信的存储器单元;其中所述电路适于,基于接收到将所述处理器置于低功率状态中的信号,将所述固件代码在先前未被保存的情况下从所述多个核心的第一自主核心周界保存到所述存储器单元并且将状态信息从所述第一自主核心周界保存到所述存储器单元,并且针对所述多个核心的每个其余自主核心周界,将状态信息保存到所述存储器单元。

示例17包括如示例16或者这里的一些其他示例所述的主题,其中所述自主核心周界包括架构接口逻辑。

示例18包括如示例16或17或者这里的一些其他示例所述的主题,其中所述电路包括功率管理代理。

示例19包括如示例18或者这里的一些其他示例所述的主题,其中所述功率管理代理通过管芯内接口与所述存储器单元通信。

示例20包括如示例16-19中的任一项或者这里的一些其他示例所述的主题,其中所述电路适于:基于接收到将所述处理器从所述低功率状态返回的信号,将从所述第一自主核心周界存储的固件代码恢复到所述多个核心的每个自主核心周界;并且将所述状态信息恢复到所述多个核心的每个相应的自主核心周界。

示例21包括如示例20或者这里的一些其他示例所述的主题,其中所述电路还基于接收到将所述处理器置于低功率状态中的信号而将每个自主核心周界停机,并且基于接收到将所述处理器从所述低功率状态返回的信号而重新继续每个自主核心周界。

示例22包括如示例16-21中的任一项或者这里的一些其他示例所述的主题,其中所述固件代码和状态信息与微控制器相关联,微控制器包括每个自主核心周界的一部分。

示例23包括一种集成电路,包括多个处理装置;存储器装置;以及与所述多个处理装置的每一者耦合并且与所述存储器装置耦合的用于将固件代码和与每个处理装置相关联的状态信息存储到所述存储器装置中的装置;其中,在接收到将所述集成电路置于低功率状态中的信号之后,用于存储固件代码和状态信息的所述装置将来自所述多个处理装置之一的所述固件代码在先前未被存储的情况下存储到所述存储器装置中,并且将来自所述多个处理装置中的每一者的状态信息存储到所述存储器装置中。

示例24包括如示例23或者这里的一些其他示例所述的主题,其中,在接收到从所述低功率状态重新继续所述集成处理器的信号之后,用于存储固件代码和状态信息的所述装置从所述存储器装置取回所述固件代码并且将其加载到所述多个处理装置的每一者中;从所述存储器装置针对所述多个处理装置中的每一者取回状态信息;并且将所述多个处理装置中的每一者的状态信息加载到其相应的处理装置中。

示例25包括如示例23或24或者这里的一些其他示例所述的主题,其中所述多个处理装置中的每一者包括控制器装置,所述控制器装置与其相应的处理装置的状态信息相关联。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:包括触觉致动器的电子装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!