本技术总体上涉及计算设备中的功率管理,并且更具体而言而不是排他性地,涉及降低计算设备中的功率消耗。
背景技术:
通常已经用两层方案来处理降低电子设备中的功率消耗。系统和子系统通常包括由印刷电路板以及各个连接器和电缆进行互连的多个集成电路芯片(IC),使得单独的单一功能IC能够在备用电压下进行操作或者被完全断电以节省功率。例如,存储器IC可以在与处理器显著不同的电压下进行操作,或者网络控制器可以具有与物理层收发器等不同的功率要求。然而,随着IC制造技术进步,曾经由多个分开的IC执行的功能现在可以由较复杂IC的嵌入部分(例如,片上系统IC(SOC))来执行。
附图说明
图1是可以修改处理器的操作状态的计算系统的示例的框图;
图2是示出可以修改处理器的操作状态的电子设备的操作的示例性模式的框图;
图3是示出用于修改处理器的操作状态的示例性实施例的执行序列的框图;以及
图4是用于修改处理器的操作状态的方法的示例性框图。
在整个公开内容和附图中使用了相同的附图标记来参照类似的部件和特征。100系列中的附图标记指代起初在图1中找到的特征;200系列的附图标记指代起初在图2中找到的特征;等等。
具体实施方式
在片上系统内,传统上已经在相同的电压电平下为所有功能供电,并且在大多数情况下以单一操作频率或时钟频率进行供电。功率管理受限于用以关断不活动功能以便节约功率的门控时钟。例如,输入-输出控制器IC可能能够关断当前没有与设备连接的某些接口。以上所描述的方法的缺点在于其不允许对芯片内的单独功能的精细控制。随着SOC设备的越来越普及,将以前通常驻留在分开的芯片中的功能中的许多功能集成至一个芯片中,从而使得难以或不可能对时钟进行门控或降低SoC芯片的操作电压。功率岛(也被称为电压岛)的概念提供了以不同且独立的电压电平和时钟频率来操作单一芯片的不同区域或功能的优点。例如,芯片可以被设计为具有用于存储器、输入/输出以及处理器功能的分开的功率岛。尽管许多芯片设计可以得益于实施功率岛,设计和开发这种芯片需要广泛的资源。而且,许多芯片包括由相同芯片上的其它设备或功能所利用的共享设备,例如,共享的输入/输出(I/O)设备,并且这种共享设备不能被独立地关断,从而降低了由于在这种设计中实施功率岛而获得的优点。
还可以由系统利用挂起至随机存取存储器(挂起至内存或STR)技术来降低功率消耗。通常,STR技术将处于低功率自刷新操作模式的除了主存储器之外的芯片的功能和可以产生唤醒事件的设备/功能断电。然而,不具有功率岛的芯片和具有共享I/O设备的芯片在降低功率消耗方面从STR技术获益很少(如果有的话)。因此,降低不实施功率岛的芯片和包括共享设备的芯片中的功率消耗是个挑战。
根据本文所描述的实施例,计算设备中的逻辑单元可以检测到计算设备内的处理器不支持各种空闲状态(在本文中也被称为C状态)。例如,处理器可以不支持高级配置和功率接口规范(在本文中也被称为ACPI)的功能。如在本文提及的,空闲状态可以包括处理器的任何适合状态,其中处理器的功率消耗低于操作状态中的功率消耗。例如,空闲状态可以包括其中处理器不接收至处理器内的任何适合数量的部件的功率的任何状态。如本文所提及的,操作状态可以包括其中处理器保持全功率并且可以使用处理器内的任何适合数量的部件来执行指令的任何状态。在一些示例中,逻辑单元可以通过转换至空闲状态来修改处理器的操作状态。例如,逻辑单元可以在处理器内的存储器中为处理器存储任何适合的状态信息,并且通过停止至处理器内的任何适合数量的部件的时钟信号或修改处理器执行指令的频率来降低处理器的功率消耗。在一些示例中,处理器内的存储器可以进入自刷新状态以阻止存储器内的数据丢失。
在下面的说明书和权利要求书中,可以使用术语“耦合”和“连接”连同其衍生词。应当理解的是,这些术语不旨在作为彼此的同义词。相反,在特定实施例中,“连接”可以用于指示两个或更多元件与彼此直接物理接触或电接触。“耦合”可以意指两个或更多元件直接物理接触或电接触。然而,“耦合”还可以意指两个或更多元件彼此不直接接触,但仍然彼此协作或交互。
一些实施例可以被实施成硬件、固件和软件中的一个或组合。一些实施例还可以被实施为存储在机器可读介质上的指令,该指令可以由计算平台来读取和执行,以执行在本文所描述的操作。机器可读介质可以包括用于以可由机器(例如,计算机)读取的形式来存储或发送信息的任何机制。例如,机器可读介质可以包括:只读存储器(ROM);随机存取存储器(RAM)、磁盘存储介质;光存储介质;闪存设备;或电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号);或发送和/或接收信号的接口,等等。
实施例是实施方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各个实施例”或“其它实施例”的提及意指结合实施例描述的特定特征、结构或特性包含在本技术的至少一些实施例中,而不必包含在全部实施例中。“实施例”、“一个实施例”或“一些实施例”的各处出现不必全部指代相同的实施例。可以将来自实施例的要素或方面与另一个实施例的要素或方面进行组合。
不是本文中描述并示出的所有部件、特征、结构、特性等都必须包括在一个或多个特定实施例中。如果说明书陈述了例如部件、特征、结构或特性“可以”、“会”、“能够”或“可能”被包括,则不需要包括特定部件、特征、结构或特性。如果说明书或权利要求书指代“一”元件,则其不意指仅仅存在元件中的一个。如果说明书或权利要求书指代“附加的”元件,则其不排除存在多于一个附加的元件。
应当指出的是,尽管已经参照特定实施方式描述了一些实施例,但根据一些实施例,其它实施方式也是可能的。另外,在附图中示出的和/或在本文描述的电路元件或其它特征的布置和/或顺序不必被布置成所示出和描述的特定方式。根据一些实施例,许多其它布置是可能的。
在图中示出的每一个系统中,元件在一些情况下可以均具有相同的附图标记或不同的附图标记,以表明所表示的元件是不同的和/或类似的。然而,元件可以是足够灵活的以具有不同的实施方式并且与在本文所示出或描述的系统中的一些或全部系统一起工作。图中示出的各个元件可以是相同的或不同的。哪一个被称为第一元件和哪一个被称为第二元件是任意的。
图1是可以修改处理器的操作状态的计算系统的示例的框图。计算设备(在本文也被称为电子设备)100可以是例如计算电话、膝上型计算机、台式计算机或平板计算机,等等。计算设备100可以包括适合于执行所存储的指令的处理器102以及存储可由处理器102执行的指令的存储器设备104。处理器102可以是单核处理器、多核处理器、计算集群、或任何数量的其它构造。存储器设备104可以包括随机存取存储器、只读存储器、闪存存储器、或任何其它适合的存储器系统。可由处理器102执行的指令可以用于实施可以修改处理器的操作状态的方法。
处理器102可以通过系统互连件106(例如,等等)连接至输入/输出(I/O)设备接口108,输入/输出(I/O)设备接口108适合于将计算设备100连接至一个或多个I/O设备110。I/O设备110可以包括例如键盘和定点设备,其中定点设备可以包括触摸板或触摸屏等等。I/O设备110可以是计算设备110的内置部件,或可以是外部地连接至计算设备100的设备。
处理器102还可以通过系统互连件106链接至显示接口112,显示接口112适合于将计算设备100连接至显示设备114。显示设备114可以包括显示屏,显示屏为计算设备100的内置部件。显示设备114还可以包括外部地连接至计算设备100的计算机监视器、电视机、或投影仪等等。另外,网络接口控制器(在本文还被称为NIC)116可以适合于通过系统互连件106将计算设备100连接至网络(未示出)。网络(未示出)可以是蜂窝网络、无线网络、广域网(WAN)、局域网(LAN)或互联网,等等。
处理器102还可以通过系统互连件106链接至空闲状态逻辑单元118(在本文还被称为功率管理单元或P-单元)。在一些实施例中,空闲状态逻辑单元118可以修改处理器102的操作状态。例如,一些处理器(例如,Intel等等)可以不支持空闲状态。如以上所讨论的,空闲状态可以包括处理器的任何适合状态,在该任何适合状态中,相比于操作状态,处理器消耗较少功率。例如,空闲状态可以包括撤去至用于处理器102内的任何适合数量的部件的时钟信号的功率。空闲状态还可以包括从位于处理器102内的任何适合数量的易失性存储器设备(也被称为高速缓存设备120)中撤去功率。在一些实施例中,空闲状态逻辑单元118可以指示处理器102将高速缓存设备120转换到自刷新状态。不能支持空闲状态的处理器102可以不包括降低至处理器102的单独的功能区域的供给电压或者在其它情况下对单独的功能区域进行功率门控(power gate)的功能。在一些实施例中,空闲状态逻辑单元118还可以修改计算设备100中的共享设备(例如I/O设备接口108)的操作状态。
处理器102还可以通过系统互连件106链接至存储设备122,存储设备122可以包括硬件驱动器、光驱动器、USB闪速驱动器、驱动器阵列、或其任何组合。存储设备122可以存储通过空闲状态逻辑单元118从处理器102中取回的数据。在一些实施例中,存储设备122还可以存储操作系统124,操作系统124可以包括实施高级配置和功率接口(ACPI)规范和操作系统功率管理(OSPM)的功能。在一些实施例中,操作系统124可以指示计算设备100将进入空闲状态,例如挂起至内存等等。在一些示例中,空闲状态逻辑单元118可以通过监控寄存器126来检测将处理器102的操作状态修改为空闲状态的指示。例如,处理器102可以从操作系统122中接收指令,并且指令的输出可以存储在寄存器124中。在一些实施例中,空闲状态逻辑单元118可以使用诸如功率门控之类的技术来修改在空闲状态期间处理器102的功率消耗。例如,空闲状态逻辑单元118可以将处理器102转换为重置状态。
应当理解的是,图1中的框图不旨在指示计算设备100将包括在图1中示出的全部部件。相反,计算设备100可以包括未在图1中示出的较少或附加的部件(例如,附加的存储器部件、嵌入的控制器、附加的模块、附加的网络接口等)。此外,空闲状态逻辑单元118的功能中的任何功能可以部分地或全部地被实施在硬件和/或处理器102中。例如,功能可以借助于专用集成电路来实施,在于I/O设备110中实施的逻辑单元中实施,在嵌入的控制器中实施的逻辑单元中实施,或在微控制器中实施的逻辑单元中实施,等等。在一些实施例中,空闲状态逻辑单元118的功能可以借助于逻辑单元来实施,其中,如本文所提及的,逻辑单元可以包括任何适合的硬件(例如,处理器等等)、软件(例如,应用程序等等)、固件、或硬件、软件和固件的任何适合的组合。
图2是示出可以修改诸如图1中的计算设备100之类的处理器的操作状态的电子设备的实施例的操作的示例性模式的框图。在一些实施例中,计算设备100可以在非系统管理模式202中进行操作,在非系统管理模式202中,操作系统124可以不修改处理器的操作状态。在一些实施例中,操作系统124可以包括挂起至内存(在本文中也被称为STR)框架204。操作系统124可以接收请求(例如中断或其它信号),以进入诸如STR操作模式之类的空闲状态。
在一些实施例中,操作系统124还可以生成进入系统管理模式208的指令或调用206。在系统管理模式208中,空闲状态逻辑单元118可以检测进入系统管理模式208的指令或调用,并且修改任何适合数量的部件(例如处理器、以太网或网络接口、通用串行总线接口和存储器设备,等等)的操作状态。在一些示例中,空闲状态逻辑单元118可以监控寄存器,寄存器指示是否要修改部件的操作状态。例如,空闲状态逻辑单元118可以进入其中处理器被置于降低功率消耗的空闲状态中的低功率模式210。在一些示例中,空闲状态可以与如由ACPI规范和/或任何其它适合的规范所定义的处理器状态C0、C1、C2、C3、C4、C5、C6或C7相对应。在低功率模式210中,可以对部件(例如以太网端口和通用串行总线等等)的时钟信号进行门控、将其转换为重置状态或将其关断。在一些示例中,存储器设备可以被转换为自刷新模式。在一些实施例中,处理器可以是ARM-类型的处理器,并且存储器设备可以不被转换为自刷新模式。
在一些示例中,空闲状态逻辑单元118可以检测唤醒事件212,其中,计算设备进入全功率模式214。在一些实施例中,全功率模式214包括将处理器从空闲状态修改为操作状态,并且使功率返回至用于诸如以太网端口、通用串行总线和存储器等任何适合数量的部件的时钟信号。空闲状态逻辑单元118然后可以指示216顺从的操作系统124恢复正常操作。
图3是示出用于修改处理器的操作状态的示例性实施例的执行序列300的框图。在302,对计算设备100的BIOS进行初始化。在一些实施例中,每一次重启计算设备或计算设备接收功率时可以对BIOS进行初始化。在304,由BIOS安装系统管理界面(本文中也被称为SMI)处理机。在一些实施例中,SMI处理机可以通知空闲状态逻辑单元118将要修改处理器的操作状态。
在306,将包括用于修改处理器的操作状态的指令的固件加载至空闲状态逻辑单元118中。在308,对高级配置和功率接口(ACPI)表进行初始化并将其安装在ACPI单元中。在一些实施例中,ACPI表可以指示与处理器的任何适合数量的空闲状态和操作状态相对应的电压和频率。
在310,BIOS开始启动操作系统124。在312,操作系统124对ACPI单元进行初始化,并且在314,操作系统124启动至操作外壳(operating shell)。在316,操作系统124接收挂起至内存或STR请求。在318,ACPI向操作系统124提供挂起目标状态,并且在320,挂起设备以及电子设备100的处理器。在322,执行入睡方法。在324,操作系统124向寄存器写入预定值或设置标志。SMI在326通知空闲状态逻辑单元118电子设备100正在进入睡眠或挂起至内存模式。在328,SMI对电子设备100内的可控设备(包括例如I/O设备110)的时钟信号进行门控,使得存储器104进入自刷新模式,并且使得处理器102进入空闲状态。
在330,空闲状态逻辑单元118接收唤醒请求。在332,空闲状态逻辑单元118向处理器发送唤醒请求以从空闲状态返回到操作状态。在334,存储器设备退出自刷新模式以返回至完全供电模式,处理器退出空闲状态,并且为被断电的任何其它设备上电。在336,SMI通知空闲状态逻辑单元118退出睡眠或挂起至内存模式,并且在338将对电子设备100的操作的控制返回给操作系统124。在340,操作系统124进入并继续正常操作。
图4是用于修改处理器的操作状态的方法的示例性框图。可以借助于诸如图1的计算设备100之类的任何适合的计算设备来实施方法400。
在框402,空闲状态逻辑单元118可以确定处理器不能修改处理器的操作状态。在一些实施例中,处理器可以不支持或识别实施由高级配置和功率接口规范所指定的空闲状态的指令。例如,诸如Intel之类的处理器可以支持包括至处理器的全功率的操作状态,或者可以关断处理器。在一些示例中,处理器可以不支持能够修改处于空闲状态的处理器的功率消耗的功能。如上所述,空闲状态可以包括降低处理器的功率消耗的任何适合数量的状态。例如,暂停空闲状态(halt idle state)(也被称为C1)可以不在处理器内执行指令,并且用于使处理器返回到执行指令的等待期(latency period)可以很小。在一些示例中,处理器可以不向诸如位于处理器内的高速缓存设备之类的易失性存储器设备提供功率。
如果空闲状态逻辑单元118确定处理器可以修改处理器的操作状态,则过程流在框404结束。如果空闲状态逻辑单元118确定处理器不能修改处理器的操作状态,则过程流在框406继续。
在框406,空闲状态逻辑单元118可以检测电子设备正在进入空闲状态的指示。在一些实施例中,空闲状态逻辑单元118可以从操作系统接收指示处理器将要进入空闲状态的指示。在一些实施例中,操作系统还可以指示处理器要使用来用于执行的各种空闲状态中的一个空闲状态。例如,处理器可以从全功率的操作状态转换至降低处理器的功率消耗的暂停状态,等等。
在框408,空闲状态逻辑单元118可以将来自处理器的状态信息存储在存储器设备中。在一些示例中,存储器设备可以驻留在处理器内。如本文所提到的,状态信息可以包括在处理器内执行指令期间使用的任何适合的数据。例如,状态信息可以指示将要在存储器设备内执行的指令的位置、任何适合数量的输出值,等等。在一些实施例中,空闲状态逻辑单元118可以将存储在处理器的易失性存储器中的数据转移至非易失性存储器设备,以使处理器能够在后来的时间利用当前数据恢复操作状态。例如,处理器中的高速缓存存储区域可以包括用于在处理器内执行指令的任何适合量的数据。在一些示例中,空闲状态逻辑单元118可以将来自处理器内的高速缓存存储区域或任何适合的易失性存储器设备的数据转移至诸如闪存存储器等非易失性存储器设备。在一些实施例中,空闲状态逻辑单元118可以指示处理器中的易失性存储器将要进入自刷新状态并且易失性存储器中的数据可以不被转移至非易失性存储器设备。
在框410,空闲状态逻辑单元118可以使得处理器进入空闲状态。例如,空闲状态逻辑单元118可以降低处理器的功率消耗,以将处理器置于空闲状态。在一些实施例中,空闲状态逻辑单元118可以撤去至处理器内的任何适合数量的核或部件的功率。空闲状态逻辑单元118还可以撤去至处理器的一些部件的系统时钟信号的功率。在一些实施例中,空闲状态逻辑单元118还可以撤去至处理器内的任何适合数量的部件(例如算术逻辑单元或控制单元,等等)的功率。同样,空闲状态逻辑单元118可以修改处理器执行指令的频率。
图4的过程流示意图并不是要指示要以任何特定顺序来执行方法400的操作或指示方法400的操作中的所有操作要包括在每一种情况中。另外,方法400可以包括任何适合数量的附加的操作。例如,在一些实施例中,空闲状态逻辑单元118可以检测处理器将要从空闲状态转换到操作状态,并且空闲状态逻辑单元118可以从处理器的易失性存储器中取回存储在非易失性存储器中的数据并且将所取回的数据存储在易失性存储器中。此外,在一些实施例中,方法400可以包括针对处理器将要返回到操作状态的信号而监控被传送至处理器的数据。
示例1
本文描述了一种用于修改处理器的操作状态的电子设备。在一些实施例中,电子设备包括逻辑单元。在一些示例中,逻辑单元可以确定处理器不能修改处理器的操作状态。逻辑单元还可以检测电子设备将要进入空闲状态的指示。另外,逻辑单元可以将来自处理器的状态信息存储在存储器设备中。此外,逻辑单元可以使得处理器进入空闲状态。
在一些实施例中,逻辑单元可以停止处理器内的系统时钟信号。逻辑单元还可以检测电子设备将要进入空闲状态的指示,该指示来自操作系统,该指示包括高级配置和功率接口指令。在一些示例中,空闲状态包括挂起至内存状态。
示例2
本文还描述了一种用于修改处理器的操作状态的方法。该方法可以包括确定处理器不能修改处理器的操作状态。该方法还可以包括检测电子设备将要进入空闲状态的指示。另外,该方法可以包括将来自处理器的状态信息存储在存储器设备中。此外,该方法可以包括使得处理器进入空闲状态。
在一些实施例中,处理器在空闲状态期间不执行指令。另外,在一些实施例中,该方法包括响应于检测到电子设备正在进入空闲状态的指示而停止至电子设备的一个或多个部件的电流的流动。
示例3
本文还描述了一种用于修改操作状态的电子设备。电子设备可以包括逻辑单元。在一些实施例中,逻辑单元可以检测电子设备将要进入空闲状态的指示,其中,空闲状态降低了处理器的功率消耗。逻辑单元还可以确定处理器不能将处理器的操作状态修改为空闲状态。在一些实施例中,逻辑单元还可以将来自处理器的状态信息存储在非易失性存储器设备中并且使得处理器进入空闲状态。逻辑单元还可以针对处理器将要返回至操作状态的信号而监控被传送至处理器的数据。
在一些实施例中,逻辑单元将响应于检测到电子设备正在进入空闲状态的指示而停止至电子设备的一个或多个部件的电流的流动。
示例4
本文描述了一种用于修改操作状态的电子设备。在一些示例中,电子设备包括用于检测电子设备将要进入空闲状态的指示的装置,其中,空闲状态降低了处理器的功率消耗。电子设备还可以包括用于确定处理器不能将处理器的操作状态修改为空闲状态的装置和用于将来自处理器的状态信息存储在非易失性存储器设备中的装置。另外,电子设备可以包括用于使得处理器进入空闲状态的装置和用于针对处理器将要返回至操作状态的信号而监控被传送至处理器的数据的装置。
在一些实施例中,电子设备还可以包括用于停止处理器内的系统时钟信号的装置。电子设备还可以包括用于检测电子设备将要进入空闲状态的指示的装置,该指示来自操作系统,该指示包括高级配置和功率接口指令。
示例5
本文描述了一种包括处理器和逻辑单元的系统。在一些实施例中,逻辑单元可以确定处理器不能修改处理器的操作状态并且检测电子设备将要进入空闲状态的指示。逻辑单元还可以将来自处理器的状态信息存储在存储器设备中;并且使得处理器进入空闲状态。在一些实施例中,该系统还可以包括存储设备。
应当理解的是,在前面提到的示例中的特性可以用在一个或多个实施例中的任何地方。例如,以上所描述的示范性设备中的所有可选特征还可以关于本文所描述的其它示范性设备和/或方法中的任何设备和/或方法来实施。此外,尽管流程图和/或状态图在本文已经用于描述实施例,但是本技术不限于那些示意图或其相对应的描述。例如,所示出的流程不需要移动通过每一个方框或状态或者精确地采用与所描绘和描述的相同的顺序。
本技术不限于本文所列出的特定细节。事实上,从本公开内容得益的本领域技术人员将意识到,可以在本技术的范围内根据前述说明和附图做出许多其它变形。相应地,包括对其进行的任何修改的下面的权利要求限定了该技术的范围。