包括多个相异的处理器核心的处理器转让专利

申请号 : CN201580062255.3

文献号 : CN107003710B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·J·威廉姆森G·R·威廉姆斯三世

申请人 : 苹果公司

摘要 :

本发明的实施方案公开了可包括一个或多个处理器的集成电路。每个处理器可包括多个处理器核心,并且每个核心具有不同的设计/实施和性能水平。例如,一个核心可被实施用于高性能,但可具有较高的最小电压。另一核心可以较低的最大性能实施,但可针对效率进行优化并且可在较低的最小电压正确地操作。处理器可支持多个处理器状态(PState)。每个PState可指定操作点,并且可映射到处理器核心中的一个处理器核心。在操作期间,核心中的一个核心是活动的:当前PState映射到的核心。如果新的PState被选择并被映射到另一核心,则处理器可自动地将处理器状态上下文切换到新选择的核心,并且可在该核心上开始执行。

权利要求 :

1.一种处理器装置,包括:

与处理器对应的多个处理器核心,其中所述处理器核心中的至少一个处理器核心实施具有与所述处理器核心中的另一个处理器核心不同的效率/性能特征的相应设计;和处理器电力管理器,所述处理器电力管理器耦接到所述多个处理器核心,其中所述处理器电力管理器包括能够编程有多个处理器状态的处理器状态寄存器,其中所述多个处理器状态中的每个处理器状态指定对应于所述多个处理器核心的所述处理器操作于的电压和时钟频率的不同组合,并且其中所述多个处理器状态中的每个处理器状态映射到所述多个处理器核心中的一个处理器核心;并且所述多个处理器核心和所述处理器电力管理器被配置为响应于操作系统将所述处理器电力管理器中的所述处理器状态寄存器从当前处理器状态编程到所请求的处理器状态,而在硬件上自动地且对于包括所述操作系统的软件不可见地将处理器上下文从所述多个处理器核心中的所述当前处理器状态所映射到的第一处理器核心转移到所述多个处理器核心中的所请求的处理器状态所映射到的第二处理器核心。

2.根据权利要求1所述的处理器装置,其中所述处理器电力管理器被配置为响应于所述处理器装置从所述当前处理器状态被编程到所请求的处理器状态而使所述第二处理器核心通电并使所述第一处理器核心掉电。

3.根据权利要求1或2所述的处理器装置,其中所述处理器电力管理器被配置为将所述第二处理器核心的操作点改变到由第二处理器状态指定的第二操作点。

4.根据权利要求1或2所述的处理器装置,其中所述处理器电力管理器被配置为响应于所述处理器电力管理器被编程到第三处理器状态而将由所述当前处理器状态指定的当前操作点改变到由所述第三处理器状态指定的第三操作点,其中所述第三处理器状态映射到所述第一处理器核心。

5.根据权利要求1或2所述的处理器装置,其中所述多个处理器核心包括上下文切换状态机,所述上下文切换状态机被配置为与所述多个处理器核心中的其它处理器核心的上下文切换状态机协作以转移所述处理器上下文。

6.根据权利要求5所述的处理器装置,还包括缓冲器,所述缓冲器耦接到所述上下文切换状态机并被配置为从所述第一处理器核心接收所述处理器上下文并将所述处理器上下文提供给所述第二处理器核心。

7.根据权利要求1或2所述的处理器装置,其中所述处理器装置包括形成所述多个处理器中的其它处理器的第二多个处理器核心。

8.根据权利要求7所述的处理器装置,还包括耦接到所述多个处理器并被所述多个处理器共享的缓存,其中转移所述上下文包括至少将经修改的数据从所述第一处理器核心刷新到所述缓存。

9.根据权利要求1或2所述的处理器装置,其中所述处理器电力管理器被配置为在转移所述处理器上下文之前将所述第一处理器核心的操作点改变到所述第二处理器核心也被配置为操作于的第四操作点。

10.根据权利要求9所述的处理器装置,其中所述处理器电力管理器被配置为在转移所述处理器上下文之后将所述第二处理器核心的操作点改变到所请求的处理器状态。

11.一种集成电路,包括:

中央处理单元(CPU)复合体,所述中央处理单元(CPU)复合体包括根据权利要求1-10中任一项所述的处理器装置,其中:所述CPU复合体包括多个CPU处理器,并且所述多个CPU处理器中的每个CPU处理器包括所述处理器装置中的所述多个处理器核心;并且所述处理器电力管理器被配置为响应于被编程到所述处理器电力管理器中的处理器状态而管理所述多个处理器核心之间的转换;和第二电力管理器,所述第二电力管理器耦接到所述CPU复合体,并且所述第二电力管理器被配置为与电力管理单元对接以请求用于所述集成电路的供电电压量值,其中所述处理器电力管理器被配置为将供电电压量值请求传输给所述第二电力管理器以响应于所述处理器状态的改变而向所述电力管理单元进行请求。

12.根据权利要求11所述的集成电路,其中相异的所述多个处理器核心中的每个处理器核心被配置为以与相异的所述多个处理器核心中的每个其它处理器核心相同的方式执行任何给定的指令序列。

13.一种用于控制处理器的方法,包括:

检测包括多个处理器核心的第一处理器改变到第一处理器状态,其中所述多个处理器核心中的至少一个处理器核心实施具有与所述处理器核心中的另一个处理器核心不同的效率/性能特征的相应设计,其中所述改变是在所述多个处理器核心中的第一处理器核心正操作于映射到所述第一处理器核心的第二处理器状态期间被检测到的,其中所述第一处理器状态映射到所述多个处理器核心中的第二处理器核心,所述改变响应于操作系统将处理器状态编程到处理器电力管理器中的处理器状态寄存器中,其中所述第一处理器状态指定第一电压和第一时钟频率,所述第一电压和第一时钟频率分别与所述第二处理器状态指定的第二电压和第二工作频率不同;以及响应于所述检测,在硬件上自动地且对于包括所述操作系统的软件不可见地将所述第一处理器的上下文从所述第一处理器核心传输到所述第二处理器核心。

14.根据权利要求13所述的方法,还包括:

响应于所述检测,将所述第二处理器核心通电;以及

在所述传输之后将所述第一处理器核心断电。

15.根据权利要求13或14所述的方法,还包括:

在转移所述处理器上下文之前,将所述第一处理器核心的状态改变成所述第二处理器核心也被配置为操作于的第三处理器状态;以及在转移所述处理器上下文之后,将所述第二处理器核心的状态改变成所述第一处理器状态。

说明书 :

包括多个相异的处理器核心的处理器

背景技术

技术领域

[0001] 本文所述实施方案涉及处理器,并且更具体地讲涉及形成处理器的多个处理器核心。
[0002] 相关领域的描述
[0003] 各种处理器被包括在电子系统中用于执行提供某些量的用户功能性的软件。处理器可包括系统中的中央处理单元(CPU),以及用于特定任务诸如图形、媒体处理等的专用处理器。一般来讲,处理器被设计用于在多个操作点(供电电压量值和时钟频率的设置)处操作。与较高操作点相比,较低操作点消耗较少电力,但也提供受限性能。对于某些工作负荷,受限的性能是足够的,并且可使用较低操作点。对于其它工作负荷,需要较高操作点来提供足够的性能。
[0004] 在一些系统中会经历各种各样的工作负荷。设计能提供要求最高的工作负荷所需的性能同时还支持将为很多经常执行的工作负荷提供足够性能的最低可能操作点的处理器已经变得具有挑战性。在电路停止正确发挥作用之前,在高操作点处操作的处理器只可支持将供电电压减小到特定水平。必须进行折中,通常,最低操作点被提高直到设计能满足所期望的高端操作点。随着高端操作点继续提高,越来越多的工作负荷是能够在最低操作点处执行的(并且能在甚至更低的操作点处执行很多工作负荷)。对于此类工作负荷,电力被不必要地消耗,这在常常操作于有限能量源诸如电池的移动系统中是一个关键的因素。

发明内容

[0005] 在实施方案中,集成电路可包括一个或多个处理器。每个处理器可包括多个处理器核心,并且每个核心具有不同的设计/实施和性能水平。例如,一个核心可被实施用于高性能,但其正确操作的最小电压可能较高。另一核心能够以较低的最大性能实施,但可针对效率进行优化并且能够以较低的最小电压正确地操作。处理器可支持多个处理器状态(PState)。每个PState可指定操作点(例如供电电压量值和时钟频率的组合),并且每个PState可映射到处理器核心中的一个处理器核心。在操作期间,核心中的一个核心是活动的:当前PState映射到的核心。如果新的PState被选择并被映射到不同的核心,则处理器可自动地将处理器状态上下文切换到新选择的核心,并且可在该核心上开始执行。
[0006] 在实施方案中,该多个核心可允许处理器支持宽范围的PState,以及/或者可提供改善的电力效率,尤其是在较低PState处。处理器可支持增强的电池寿命(例如,在移动系统中)。处理器可为并非性能要求高的工作负荷提供有效执行,这可减少各种系统中的热需求。

附图说明

[0007] 下面的具体实施方式将参照附图进行描述,现在对附图进行简要说明。
[0008] 图1是处理器集群的一个实施方案的框图。
[0009] 图2是对于一个实施方案例示如图1所示的PCore和ECore的效率与性能之间关系的图。
[0010] 图3是例示处理器电力管理单元的一个实施方案的用于改变处理器状态的操作的流程图。
[0011] 图4是例示处理器电力管理单元的一个实施方案的用于更换核心的操作的流程图。
[0012] 图5是针对核心更换的上下文切换硬件的一个实施方案的框图。
[0013] 图6是包括图1所示的处理器集群的一个实施方案的一种片上系统(SOC)的一个实施方案的框图。
[0014] 图7是系统的一个实施例的框图。
[0015] 尽管本公开所述的实施方案可允许各种修改形式和另选形式,但其特定实施方案在附图中以举例的方式示出并将在本文详细描述。然而,应当理解,附图和对其的详细描述并非旨在将实施方案限制于所公开的具体形式,相反,本发明旨在涵盖落入到所附权利要求的实质和范围内的所有修改形式、等同形式和另选形式。本文所使用的标题仅用于组织目的,并不旨在用于限制说明书的范围。如在整个本专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而非强制的意义(即,意味着必须)使用“可能”一词。类似地,字词“包括”是指包括但不限于。
[0016] 各种单元、电路或其它部件可被描述为“被配置为”执行一个或多个任务。在此类上下文中,“被配置为”是对一般意味着“具有如下电路”的结构的宽泛表述:在操作期间执行一个或多个任务。如此,即使在单元/电路/部件当前未接通时,该单元/电路/部件也可被配置为执行任务。一般来讲,形成与“被配置为”对应的结构的电路可包括硬件电路和/或存储可执行以实现该操作的程序指令的存储器。该存储器可包括易失性存储器诸如静态随机存取存储器或动态随机存取存储器和/或非易失性存储器诸如光盘或磁盘存储装置、闪存存储器、可编程只读存储器等。类似地,为了描述的方便,可将各种单元/电路/部件描述为执行一项或多项任务。此类描述应当被解释成包括短语“被配置为”。表述被配置为执行一个或多个任务的单元/电路/部件明确地旨在对该单元/电路/部件不调用35U.S.C.§112(f)的解释。
[0017] 本说明书包括对“一个实施方案”或“实施方案”的引用。短语“在一个实施方案中”或“在实施方案中”的出现不一定指相同的实施方案,尽管通常设想包括特征的任何组合的实施方案,除非在此明确地否认。特定特征、结构或特性可以与本公开一致的任何适当的方式结合。

具体实施方式

[0018] 图1是处理器集群30的一个实施方案的框图。在所示实施方案中,包括多个处理器32A-32n和二级(L2)缓存34。处理器32A-32n耦接到L2缓存34,L2缓存被进一步耦接以与包括集群30的系统的其它元件通信。在所示实施方案中,L2缓存34包括处理器电力管理器36,处理器电力管理器包括存储处理器32A-32n的PState的PState寄存器38。在各种实施方案中,每个处理器32A-32n可具有其自己的独立PState,处理器32A-32n的分组可共享PState,或者集群30可具有处理器32A-32n的共享的PState。处理器32A在图1中被详细图示为包括至少两个处理器核心:性能核心(PCore)40和效率核心(ECore)42。其它实施方案可包括附加的核心。每个核心40和42通过相应的电力开关44和46耦接到电源轨(VP)。因此,每个核心
40和42可被独立地加电或掉电。其它处理器诸如处理器32n可与处理器32A类似。
[0019] 每个处理器32A-32n可以是在系统中执行的软件可将代码分配给以执行的实体。例如,软件可以是对系统中的硬件进行控制的操作系统(OS)的一部分。软件可以是对要执行的代码进行调度的线程或任务调度器。OS还可基于代码被执行的性能需求,为处理器
32A-32n分配PState。OS可跟踪代码的行为以确定PState,可静态地记录每个线程/任务的信息以选择PState,等等,或它们的任何组合。此外或另选地,PState可受到系统中的其它条件(热极限、可用电池电力等)影响。
[0020] 每个可能的PState可指定处理器32A-32n的操作点。例如,操作点可包括处理器32A-32n中的VP的供电电压量值以及时钟的时钟频率。其它实施方案可以其它方式限定操作点,但一般来讲,操作点可指示处理器的性能和电力消耗。在一个实施方案中,PState可以是直接用作供电电压量值和时钟频率的一对值。在其它实施方案中,PState可以是用于获取供电电压量值和时钟频率的值(例如值表的索引)。
[0021] 如图1所示,处理器32A包括PCore 40和ECore 42。处理器32A所支持的每个PState映射到核心40和42中的一个核心。每个核心40和42可具有映射到自己的不止一个PState。
[0022] 在处理器32A-32n执行的代码改变和/或其它系统考量保证PState改变时,PState寄存器38可被更新(例如,通过OS)。如果PState从映射到核心40和42中的一者(“活动核心”)的当前PState改变成映射到核心40和42中的另一者(“目标核心”)的新PState,则集群30可自动地在硬件上将处理器32A的处理器上下文从活动核心转移到目标核心。目标核心可在PState改变时被断电。转移上下文的过程可包括对目标核心通电、重置并初始化目标核心、转移处理器上下文、以及对活动核心断电(使目标核心成为活动核心)。执行可在目标核心(现在是活动核心)上继续。因此,核心之间的切换对于软件可以是不可见的。事实上,软件可能甚至不“知道”在处理器32A-32n中有多个核心。在一个实施方案中,核心40和42可具有不同的实施,但响应于任何给定指令流(包括特权指令)可准确地提供相同的程序行为。例如,一些指令集架构可包括唯一地标识系统中的处理器的特征。例如,指令集架构常常具有返回被分配给系统中CPU的值的“CPU ID”指令。系统中的每个CPU分配有唯一值。核心40和42二者可返回相同的CPU ID值。另一形式的CPU ID指令可返回指示指令集架构的哪些可选特征由处理器实施的值。核心40和42二者也可返回用于该指令的相同值。可提供对于不同的具体实施可以不同的各种特定于模型的寄存器。核心40和42的特定于模型的寄存器可以是相同的。因此,在处理器32A-32B上执行的软件(包括操作系统软件、应用程序软件等)可相同地操作,而与哪个核心40和42活动无关。
[0023] PCore 40和ECore 42可以是处理器32A-32n采用的指令集架构(ISA)的不同设计、不同实施。以另一种方式来看,PCore 40和ECore 42可实施不同的微架构。PCore 40可以是试图使性能最大化而电力节省是较少强调的设计目标的激进设计。PCore 40中的电路可以是激进的,这可防止PCore 40可操作于的最小供电电压如一些所述PState中所期望的那样低。另一方面,ECore 42可实施更保守设计,因此可在比PCore 40低的最小电压正确地操作。ECore 42的性能在给定操作点处可低于PCore 40,并且电力节省对于ECore 42可以是更高度强调的目标。ECore 42占据的半导体面积也可比PCore 40小。
[0024] 虽然图1所示的示例在处理器32A中包括两个核心,但其它实施方案可包括不止两个核心。一个核心可以是在最低PState下操作的最有效核心,其它核心可针对沿性能/效率谱的其它点进行优化,直到再一个核心是处理器中的多个核心中的最高性能核心。可在各种实施方案中使用任意数量的核心。
[0025] 一般来讲,处理器可以是被配置为实施所限定的指令集架构(ISA)的任何电路。各种ISA存在于各种实施方案并且可在各种实施方案中使用,诸如x86架构(也称为APX)、ARM架构、MIPS架构、PowerPC(现在简称为Power)等。处理器可采用多种微架构技术,包括上述的多核心方法。每个核心也可实施各种微架构技术。一般来讲,微架构可以是指执行单元和用于实施ISA的其它电路的组织。示例可包括按序对乱序执行、推测性执行、分支预测、超标量、超流水线等。除了各种其它技术之外,实施方案可实施微编码技术。
[0026] 处理器32A-32n和/或处理器复合体30可被用作系统中的任何处理器。例如,处理器可以是执行OS以控制系统中的其它硬件并调度要执行的应用程序代码的中央处理单元(CPU)。CPU也可执行应用程序代码等等。处理器可以是专用处理器诸如针对图形操控进行优化的图形处理单元(GPU)、针对信号处理进行优化的数字信号处理器(DSP)、进行各个外围设备部件中软件执行的嵌入式处理器等等。
[0027] 在一个实施方案中,除了处理器上下文正被转移时之外,形成处理器32A-32n的核心40和42中的至多一者可在执行期间被通电。给定的处理器32A-32n可完全关闭(所有核心掉电)。处理器电力管理器36可被配置为利用电力开关44和46控制处理器核心的通电/加电和处理器核心的断电/掉电。
[0028] 在一些实施方案中,核心40和/或42可实施数据缓存,该数据缓存可存储经修改的数据(即例如响应于处理器代码中的存储被执行而已经被写入缓存中、但还未写到存储器使得存储器中的数据不再是正确数据的数据)。除了转移处理器上下文之外,可从数据缓存刷新经修改的数据。特别地,数据可被刷新到L2缓存34,但可保持存储在L2缓存34中,除非L2缓存34的正常操作导致该数据被清除。一旦新活动核心正在执行,经修改的数据就可以是L2缓存34中的命中,并且可以相对低的延迟被移动到新活动核心的缓存。
[0029] 处理器电力管理器36可被配置为管理处理器集群30内的PState转变。处理器电力管理器36可被配置为将供电电压量值转变传送到系统级电力管理器或者直接传送到向系统供应电压的电力管理单元(PMU)。处理器电力管理器36可被配置为与时钟生成硬件(在图1中未示出)诸如锁相环(PLL)等交互。
[0030] 处理器上下文通常可包括任何软件可见的处理器状态。该状态通常可存储在寄存器中,该寄存器是能够作为ISA中定义的各种指令的操作数进行访问的。该状态可包括所架构的寄存器诸如各种类型(整数、浮点、向量等)的操作数寄存器。寄存器还可包括处理器控制寄存器诸如状态寄存器、处理器模式寄存器等。寄存器还可包括被定义为对于特定单元包括特定内容的专用寄存器。寄存器还可包括特定于模型的寄存器,其存在可以是架构特定的但其内容对于不同实施可以是不同的。
[0031] L2缓存34可具有任何容量和配置。L2缓存34可以包括处理器32A-32n中的缓存、可不包括该缓存、或者非包括性的。
[0032] 图2是例示核心40和42的一个实施方案的效率与性能之间关系的图。虚线对应于ECore 42,并且实线对应于PCore 40。效率被图示在竖轴上,并且性能被图示在横轴上。效率可以多种方式(例如性能/瓦)来测量。性能可利用各种基准程序诸如Specint、SpecFlt、Dhrystone等来测量。处理器32A的各个PState沿图2中的曲线图示。对应于较高性能的PState在PCore曲线上,因为PCore针对性能进行了优化,其中对应于较低性能/较高能力节省的PState在ECore曲线上,其在较低性能水平更有效但在较高性能水平的性能较低。
[0033] 因此,在图2的实施例中,PState 1、2和3映射到ECore 42,并且PState 4、5、6和7映射到PCore 40。可支持任意数量的PState,并且任意数量可被映射到各个核心。在另一个实施方案中,可支持连续PState设置。在此类实施方案中,可定义图2中曲线相交的转折点,在该点处可进行核心切换。
[0034] 图3是例示处理器电力管理器36响应于写到PState寄存器38的新PState进行的操作的一个实施方案的流程图。然而,为了便于理解,框图以特定顺序示出,也可使用其它顺序。框可在处理器电力管理器36中的组合逻辑中并行执行。框、框的组合和/或流程图作为整体可在多个时钟周期内为管线式的。处理器电力状态管理器36可被配置为实施图3中所示的操作。
[0035] 活动核心可以是当前正执行代码的核心40/42。在一些实施方案中,活动核心可以是在当前PState稳态操作期间被通电的唯一核心。如果新的PState不映射到活动核心(决策框50,“否”分支),则处理器电力状态管理器36可执行“核心更换”到新PState所映射到的核心(框52)。如果新的PState映射到活动核心,则活动核心可保持活动,并且执行可在PState改变时继续。如果新的PState是从当前PState的增大(决策框54,“是”分支),则供电电压量值可首先增大以支持增大的频率。因此,处理器电力状态管理器36可请求电压增大(框56),并等待电压增大完成(决策框58,“是”分支)。处理器电力状态管理器36可通过等待指定的时间段来确定电压增大完成,或者可接收指示电压增大何时完成的通信。在一个实施方案中,处理器电力状态管理器36可将电压增大请求传输给另一电力管理器(例如在一个实施方案中是图6所示的SOC级电力管理器),或者可将电压请求直接传输给供应电压的PMU。一旦电压增大完成,处理器电力管理器36就可提高时钟的频率(框60)。另一方面,如果新的PState是从当前PState的减小,则当前供电电压可支持新的(更低)频率。因此(决策框54,“否”分支),处理器电力管理器36可更新时钟频率并请求新的供电电压,而不等待电压改变完成(框62)。
[0036] 图4是例示处理器电力管理器36执行核心更换(图3的框52)的操作的一个实施方案的流程图。然而,为了便于理解,框图以特定顺序示出,也可使用其它顺序。框可在处理器电力管理器36中的组合逻辑中并行执行。框、框的组合和/或流程图作为整体可在多个时钟周期内为管线式的。处理器电力状态管理器36可被配置为实施图4中所示的操作。
[0037] 处理器电力管理器36可将活动核心转换到“安全”PState(框70)。安全PState可以是活动核心和目标核心二者都正确操作的状态。在这个上下文中,目标核心可以是新PState映射到的核心。在其中存在不止两个核心的实施方案中,安全PState可以不同,具体取决于哪个核心是活动核心以及哪个核心是目标核心。安全PState不必是能在PState寄存器36中选择的PState。也就是说,供电电压与频率的组合可以不是映射到核心的所支持的组合中的一者。例如,在给定了安全PState中的供电电压量值的情况下,PCore可以能够在较高频率下运行。然而,ECore可能不能以所给定的供电电压量值在较高频率下运行。因此,安全PState可包括当前供电电压量值,但时钟频率更低。另选地,目标核心可能不支持当前供电电压,并且安全PState可包括不同的供电电压量值和时钟频率。向安全PState的转变可类似于图3中的框54、56、58、60、和62。
[0038] 处理器电力管理器36可对目标核心加电(框72)。例如在图1的实施方案中,处理器电力管理器36可闭合通向目标核心的电力开关,从而允许电力流向目标核心。目标核心可在电力稳定之后被重置。在一些实施方案中,目标核心可在重置完成后初始化。一旦重置(以及初始化,如果适用的话)完成(决策框74,“是”分支),处理器电力管理器36就可发起处理器上下文从活动核心向目标核心的转移(框76)。在一个实施方案中,核心可包括被配置为传输/接收处理器上下文的电路。在另一实施方案中,所述电路可位于处理器电力管理器36中。如先前所提及的,核心还可被配置为在上下文转移期间刷新缓存。一旦上下文转移完成(决策框78,“是”分支),则处理器电力管理器可使(先前)活动核心掉电,并且目标核心可变成活动核心(框80)。掉电可例如通过断开通向先前活动核心的电力开关来实现。处理器电力管理器36可将活动核心转换到新PState(框82)。向新PState的转变可类似于图3中的框54、56、58、60、和62。
[0039] 图5是处理器32A的一个实施方案的更详细框图。在例示的实施方案中,PCore 40和ECore 42被示为包括上下文状态机90的实例(即图5中的90A和90B)。核心40和42中的状态机90的具体实施可以不同,但它们在逻辑上可以类似的方式操作。一般来讲,活动核心中的状态机90可导致寄存器状态被活动核心输出到状态机90所耦接到的上下文缓冲器92。状态中寄存器的次序可以是固定的,使得接收状态机可简单地读取数据并将其写到正确的寄存器。在另一具体实施中,所述次序可以是随意的,并且可为每个寄存器分配标识符,所述标识符可以与寄存器内容一起被写到上下文缓冲器92并被接收状态机用来在接收核心内写正确的寄存器。
[0040] 状态机可以各种方式实现:固定功能电路(例如有限状态机)、处理器执行的微码、在处理器电力管理器36中(例如传输命令给核心以转移各个寄存器)等等。另外,活动处理器中的状态机90可将数据缓存刷新到L2缓存34,如上所述。
[0041] 上下文缓冲器92可以是先进先出缓冲器(FIFO),用于从一个核心向另一个捕获上下文状态。上下文缓冲器92可提供弹性,处理跨时钟域问题等等。在实施方案中,上下文缓冲器92可以是处理器电力管理器36的一部分,因此在图5中以虚线示出。在另一实施方案中,状态机90也可实施在处理器电力管理器36中。在此类实施方案中,处理器电力管理器36可访问核心40和42中的寄存器状态,或者可使指令被执行以执行寄存器读/写来执行寄存器状态的传输。
[0042] 图6是耦接到存储器12的SOC 10的一个实施方案的框图。正如其名称所暗示的,SOC 10的部件可被集成到单个半导体基板上作为集成电路“芯片”。在一些实施方案中,部件可在系统中的两个或更多个芯片上实现。然而,SOC 10在本文将被用作示例。在所示的实施方案中,SOC 10的部件包括中央处理单元(CPU)复合体14(其可由图1所示的处理器集群30实施)、外围设备部件18A-18B(更简略地,“外围设备”18)、存储器控制器22、SOC电力管理器(PMGR)16和通信结构27。部件14、16、18A-18B和22可全部耦接到通信结构27。存储器控制器22在使用期间可耦接到存储器12。
[0043] 存储器控制器22一般可包括电路,该电路用于接收来自SOC 10的其它部件的存储器操作并用于访问存储器12以完成存储器操作。存储器控制器22可被配置为访问任何类型的存储器12。例如,存储器12可以是静态随机存取存储器(SRAM)、动态RAM(DRAM)诸如包括双倍数据速率(DDR、DDR2、DDR3、DDR4等)DRAM的同步DRAM(SDRAM)。可支持DDRDRAM的低电力/移动版本(例如,LPDDR、mDDR等)。存储器控制器22可包括存储器操作队列,以用于对这些操作进行排序(并且可能重新排序),并将这些操作呈现至存储器12。存储器控制器22还可包括用于存储等待写到存储器的写数据和等待返回至存储器操作的源的读数据的数据缓冲器。在一些实施方案中,存储器控制器22可包括用于存储最近访问的存储器数据的存储器缓存。例如,在SOC具体实施中,存储器缓存可通过在预期很快要再次访问数据的情况下避免从存储器12重新访问数据来降低SOC中的电力消耗。在一些情况下,存储器缓存也可被称为系统缓存,其与私有缓存诸如L2缓存或处理器中的缓存不同,该私有缓存只服务于某些部件。此外,在一些实施方案中,系统缓存不需要位于存储器控制器22内。
[0044] 外围设备18A-18B可为被包括在SOC 10中的附加硬件功能性的任何集合。例如,外围设备18A-18B可包括视频外围设备,诸如被配置为处理来自相机或其它图像传感器的图像捕捉数据的图像信号处理器、被配置为在一个或多个显示设备上显示视频数据的显示控制器、图形处理单元(GPU)、视频编码器/解码器、缩放器、旋转器、混合器等。外围设备可包括音频外围设备,诸如麦克风、扬声器、至麦克风和扬声器的接口、音频处理器、数字信号处理器、混合器等。外围设备可包括用于SOC 10外部的各种接口的接口控制器(例如外围设备18B),该SOC包括接口诸如通用串行总线(USB)、外围部件互连(PCI)(包括PCI高速(PCIe))、串行和并行端口等等。外围设备可包括联网外围设备诸如媒体访问控制器(MAC)。可包括硬件的任何集合。
[0045] 通信构造27可以是用于在SOC 10的部件间进行通信的任何通信互连件和协议。通信构造27可以是基于总线的,包括共享总线配置、交叉杆配置以及具有网桥的分级总线。通信构造27还可以是基于封装的,并且可利用网桥、交叉杆、点到点或其它互连件进行分级。
[0046] SOC PMGR 16可被配置为控制从系统中的PMU请求的供电电压量值。可存在由PMU为SOC 10生成的多个供电电压。例如,可为CPU复合体14中的处理器32A-32n生成VP电压,可为SOC 10中的其它部件生成VSOC电压。在一个实施方案中,VSOC可服务存储器控制器22、外围设备18、SOC PMGR 16、和SOC 10的其它部件,并且可基于电力域采用电力门控。在一些实施方案中,对于SOC 10的其余部分可存在多个供电电压。在一些实施方案中,还可存在用于CPU复合体14和/或SOC 10中各个存储器阵列的存储器供电电压。存储器供电电压可与供应给逻辑电路的电压(例如VP或VSOC)一起使用,供应给逻辑电路的电压可具有比为了确保稳健的存储操作所需要的电压量值低的电压量值。SOC PMGR 16可以直接在软件控制下(例如,软件可直接请求部件的加电和/或掉电)和/或可被配置为监视SOC 10并确定各个部件何时要被加电或掉电。对于CPU复合体14,对于VP的电压请求可被提供给SOC PMGR 16,SOC PMGR 16可将该请求传送给PMU以实现供电电压量值改变。
[0047] 一般来讲,部件可被称为被通电或被断电。如果部件正在接收供电电压使得其可如所设计的那样操作,则其可以是被通电。如果部件被断电,则其并没有正在接收供电电压并且不处于操作中。如果部件被通电,则其也可被称为被加电,并且如果其被断电,则其也可被称为掉电。对部件加电可以是指将供电电压供应给被断电的部件,并且对部件掉电可以是指终止将供电电压供应给部件。类似地,任何子部件和/或SOC 10作为整体可被称为被加电/掉电等等。部件可以是提供SOC 10内的指定功能并且具有到SOC 10的其余部分的特定接口的预定电路块。因此,外围设备18A-18B、CPU复合体14、存储器控制器22和SOC PMGR 16各自可以是部件的示例。
[0048] 应当指出,SOC 10的部件的数量(以及图1中所示的那些部件的子部件的数量,诸如在CPU复合件14内)在不同实施方案中可以是不同的。可存在比图1中所示的数量多或少的每个部件/子部件。
[0049] 接下来转向图7,其示出了系统150的一个实施方案的框图。在例示的实施方案中,系统150包括耦接到外部存储器12和一个或多个外围设备154的SOC 10的至少一个实例。提供向SOC 10供应供电电压以及向存储器12和/或外围设备154供应一个或多个供电电压的PMU 156。在一些实施方案中,可包括SOC 10的多于一个实例(也可包括多于一个存储器12)。
[0050] PMU 156一般可包括用于生成供电电压并将那些供电电压提供给系统的其它部件诸如SOC 10、存储器12、各个片外外围设备部件154诸如显示设备、图像传感器、用户接口设备等的电路。PMU 156因此可包括可编程电压调节器、用于与SOC 10通过接口结合并且更具体地是与SOC PMGR 16通过接口结合以接收电压请求的逻辑部件等等。
[0051] 根据系统150的类型,外围设备154可包括任何期望的电路。例如,在一个实施方案中,系统150可以是移动设备(例如个人数字助理(PDA)、智能电话等),并且外围设备154可包括用于各种类型的无线通信的设备,诸如wifi、蓝牙、蜂窝、全球定位系统等。外围设备154还可包括附加存储装置,该附加存储装置包括RAM存储装置、固态存储装置或磁盘存储装置。外围设备154可包括用户界面设备(诸如包括触摸显示屏或多点触摸显示屏的显示屏)、键盘或其它输入设备、麦克风、扬声器等。在其它实施例中,系统150可以是任何类型的计算系统(例如台式个人计算机、膝上型电脑、工作站、网络机顶盒等)。
[0052] 外部储存器12可以包括任何类型的存储器。例如,外部存储器12可以是SRAM、动态RAM(DRAM)(诸如同步DRAM(SDRAM))、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、RAMBUS DRAM、低电力版本的DDR DRAM(例如LPDDR、mDDR等)等等。外部存储器12可包括存储器设备可被安装到的一个或多个存储器模块,诸如单列存储器模块(SIMM)、双列存储器模块(DIMM)等。另选地,外部存储器12可包括以芯片上芯片配置或封装上封装具体实施被安装在SOC 10上的一个或多个存储器设备。
[0053] 一旦充分理解了以上公开,很多变型形式和修改形式对于本领域的技术人员而言将变得显而易见。本发明旨在将以下权利要求书被解释为涵盖所有此类变型形式和修改形式。