CN114902158A - 长空闲状态系统和方法 - Google Patents

长空闲状态系统和方法 Download PDF

Info

Publication number
CN114902158A
CN114902158A CN202080091030.1A CN202080091030A CN114902158A CN 114902158 A CN114902158 A CN 114902158A CN 202080091030 A CN202080091030 A CN 202080091030A CN 114902158 A CN114902158 A CN 114902158A
Authority
CN
China
Prior art keywords
state
memory
soc
voltage
data structure
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.)
Pending
Application number
CN202080091030.1A
Other languages
English (en)
Inventor
亚历山大·J·布拉诺维尔
本杰明·特西恩
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN114902158A publication Critical patent/CN114902158A/zh
Pending legal-status Critical Current

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/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/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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3243Power saving in microcontroller unit
    • 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/3253Power saving in bus
    • 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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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

Abstract

公开用于计算机处理装置中的电源管理的方法、装置和系统。所述方法可以包括通过数据结构选择D23作为目标状态;通过存储器控制器选择D3状态;阻止存储器访问;减少数据结构和存储器控制器时钟;降低SoC电压;并且关闭PHY电压。所述方法可以包括发出信号以唤醒所述SoC;通过升高SoC电压和增加数据结构和存储器控制器时钟来启动退出流程;解除阻止存储器访问;将与唤醒事件相关联的活动传播到存储器;通过PHY退出D3;并且通过存储器退出自刷新。

Description

长空闲状态系统和方法
相关申请的交叉引用
本申请要求2019年12月30日提交的第16/730,252号美国非临时专利申请的权益,所述美国非临时专利申请的内容特此通过引用并入本文。
背景技术
计算机处理器在未被任何程序使用时被描述为空闲的。在计算机系统上运行的每个程序或任务都会在中央处理单元(CPU)上占用一定量的处理时间。如果CPU已完成所有任务,则它处于空闲状态。现代处理器使用空闲时间来节省电力。常用的节省电力方法包括降低时钟速度和CPU电压,以及将处理器的部分置于睡眠状态。节能管理和快速唤醒操作的能力需要在计算机系统中进行仔细的平衡。
附图说明
可以从结合附图以举例的方式给出的以下描述中获得更详细的理解,在附图中:
图1是其中可以实施本公开的一个或多个特征的示例装置的框图;
图2是图1的装置的框图,其示出另外的细节;
图3是示出其中可以实施本公开的一个或多个特征的示例片上系统(SoC)装置的框图;
图4示出进入D23状态的方法;以及
图5示出退出D23状态的方法。
具体实施方式
公开用于计算机处理装置中的电源管理的方法、装置和系统。所述方法可以包括通过数据结构选择D23作为目标状态;通过存储器控制器选择D3状态;阻止存储器访问;减少数据结构和存储器控制器时钟;降低片上系统(SoC)电压;并且关闭物理接口(PHY)电压。所述方法可以包括发出信号以唤醒SoC;通过升高SoC电压和增加数据结构和存储器控制器时钟来启动退出流程;解除阻止存储器访问;将与唤醒事件相关联的活动传播到存储器;通过PHY退出D3状态;并且通过存储器退出自刷新。
图1是其中可以实施本公开的一个或多个特征的示例装置100的框图。装置100可以包括例如计算机、游戏装置、手持式装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100还可以任选地包括输入驱动器112和输出驱动器114。应理解,装置100可以包括图1中未示出的另外的组件。
在各种替代方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一裸片上的CPU和GPU,或者一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。在各种替代方案中,存储器104与处理器102位于同一裸片上,或者与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110包括但不限于显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且容许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且容许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选组件,并且装置100在不存在输入驱动器112和输出驱动器114的情况下将以相同方式操作。输出驱动器116包括耦合至显示装置118的加速处理装置(“APD”)116。APD从处理器102接受计算命令和图形渲染命令,处理那些计算命令和图形渲染命令,并将像素输出提供给显示装置118以进行显示。如下面进一步详细描述,APD 116包括一个或多个并行处理单元,以根据单指令多数据(“SIMD”)范例执行计算。因此,虽然本文中将各种功能描述为由APD 116执行或与其结合来执行,但是在各种替代方案中,被描述为由APD 116执行的功能另外地或替代地由具有类似能力的其他计算装置执行,所述其他计算装置不由主机处理器(例如,处理器102)驱动并且向显示装置118提供图形输出。例如,可以设想的是,根据SIMD范例执行处理任务的任何处理系统可以执行本文所描述的功能。替代地,设想的是,不根据SIMD范例执行处理任务的计算系统执行本文所描述的功能。
图2是装置100的框图,示出了与在APD 116上执行处理任务有关的另外的细节。处理器102在系统存储器104中维持一个或多个控制逻辑模块,以供处理器102执行。控制逻辑模块包括操作系统120、内核模式驱动器122和应用程序126。这些控制逻辑模块控制处理器102和APD 116的操作的各种特征。例如,操作系统120直接与硬件通信,并且为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过例如向在处理器102上执行以访问APD 116的各种功能的软件(例如,应用程序126)提供应用程序编程接口(“API”)来控制APD 116的操作。内核模式驱动器122还包括即时编译器,所述即时编译器编译程序以供APD 116的处理组件(例如在下面进一步详细论述的SIMD单元138)执行。
APD 116执行选定功能的命令和程序,例如可以适合于进行并行处理的图形操作和非图形操作。APD 116可以用于基于从处理器102接收的命令执行图形流水线操作,例如像素操作、几何计算,以及将图像渲染到显示装置118。APD 116还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,例如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,所述计算单元包括一个或多个SIMD单元138,所述一个或多个SIMD单元根据SIMD范例以并行方式在处理器102的请求下执行操作。SIMD范例是这样一种范例:多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够用不同的数据执行所述程序。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行同一指令,但是可以以不同的数据执行所述指令。如果并非所有通道都需要执行给定指令,则可以利用断言关闭通道。断言也可以用于执行具有发散控制流的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流是基于由单个通道执行的计算,与当前未执行的控制流路径相对应的通道的断言以及对不同控制流路径的串行执行允许任意控制流。
计算单元132中的基本执行单元是工作项。每个工作项表示将在特定通道中并行执行的程序的单个实例。可以在单个SIMD处理单元138上将工作项同时作为“波前”执行。一个或多个波前包括在“工作组”中,所述工作组包括被指定为执行同一程序的工作项集合。可以通过执行构成工作组的波前中的每一者来执行工作组。在替代方案中,波前在单个SIMD单元138上循序执行,或者在不同的SIMD单元138上部分地或完全地并行执行。波前可以被视为可以在单个SIMD单元138上同时地执行的最大工作项集合。因此,如果从处理器102接收到的命令指示特定程序将被并行化到所述程序不能同时在单个SIMD单元138上执行的程度,则所述程序被分解成在两个或更多个SIMD单元138上并行化或在同一SIMD单元138上串行化(或根据需要并行化和串行化)的波前。调度器136执行与在不同计算单元132和SIMD单元138上调度各种波前相关的操作。
由计算单元132提供的并行性适合于图形相关操作,例如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,从处理器102接受图形处理命令的图形流水线134将计算任务提供给计算单元132以并行执行。
计算单元132还用于执行与图形无关或不作为图形流水线134的“正常”操作的一部分执行的计算任务(例如,执行自定义操作以补充为图形流水线134的操作执行的处理)。在处理器102上执行的应用程序126或其他软件将定义此类计算任务的程序传输给APD 116以供执行。
图3是示出其中可以实现本文所论述的示例的一个或多个特征的示例片上系统(SoC)装置300的框图。SoC装置300包括数据结构305、CPU核心复合体310、GPU 320、多媒体处理单元(MPU)330、显示接口340、I/O集线器350、时钟、系统和电源管理以及安全块360,以及存储器控制器370。数据结构305包括用于在SoC装置300的各种组件之间提供通信互连的电路。在各种实现方式中,使用任何合适的互连硬件。在一些实现方式中,从物理的角度来看,数据结构305在SoC装置的中心位置中实现,或者分布到跨SoC装置的多个集线器并且使用合适的通信介质(例如,总线)互连。从逻辑的角度来看,数据结构305位于数据流的中心,并且关于不同块的空闲状态的信息集中(例如,存储)在数据结构305中。在一些实现方式中,此信息用于确定转变到S0ix子状态的适当时间,如下所述。
CPU核心复合体310包括一个或多个合适的CPU核心。复合体中的每个核心都包括私有高速缓存,并且复合体中的所有核心都与共享高速缓存进行通信。在一些实现方式中,SoC装置300包括多个CPU核心复合体。GPU 320包括任何合适的GPU或GPU硬件的组合。MPU330包括一个或多个合适的MPU,例如音频协处理器、成像信号处理器、视频编解码器等。
显示接口340包括用于驱动一个或多个显示器的任何合适的硬件。I/O集线器350包括用于将数据结构305与I/O装置380介接的任何合适的硬件。在一些实现方式中,I/O装置380包括通用串行总线(USB)、外围组件互连高速(PCIe)总线、非易失性存储器主机控制器接口(NVMe)总线、串行高级技术附件(SATA)总线、千兆以太网(xGBE)、内部集成电路(I2C)总线、安全数字(SD)接口、通用输入/输出(GPIO)连接、传感器融合I/O连接和/或任何其他合适的I/O硬件中的一个或多个。因此,在一些实现方式中,I/O集线器350包括USB主机控制器、PCIe根复合体、NVMe主机控制器、SATA主机控制器、xGBE接口、I2C节点、SD主机、GPIO控制器、传感器融合控制器和/或任何其他合适的I/O装置接口。
也称为系统管理单元(SMU 360)的时钟、系统和电源管理以及安全块包括用于管理和访问系统配置以及状态寄存器和存储器、生成时钟信号、控制电源轨电压,并且为SoC装置300执行安全访问和策略的硬件和固件。在一些实现方式中,安全块或SMU 360使用系统管理通信网络(未示出)与SoC装置300的其他块互连。在一些实现方式中,安全块360用于例如使用来自数据结构305的信息管理进入和退出多层S0ix状态。
存储器控制器370包括用于与存储器390介接的任何合适的硬件。在一些实现方式中,存储器390是双倍数据速率(DDR)存储器。示例DDR存储器包括DDR3、DDR4、DDR5、LPDDR4、LPDDR5、GDDR5、GDDR6等。
在一些示例中,SoC装置300使用装置100的一些或所有组件实现,如关于图1和图2所示和描述。在一些实现方式中,装置100使用SoC装置300的一些或所有组件实现。
为了完整起见,系统电源状态S0(唤醒)是一般工作状态,其中计算单元处于唤醒状态。在系统电源状态S3中,SoC(下图3中的SoC300)信息和数据丢失并且DDR存储器(下图3中的元件390)处于自刷新状态。在S0状态下,通常所有子系统都通电,并且用户可以参与系统的所有支持操作,例如执行指令。如果部分或全部子系统未运行,则保持S0状态会造成不必要的功率浪费,除非在某些情况下。因此,在一些示例中,如果处于S0状态的系统满足某些进入条件,则它将进入多个电源管理状态中的一个,例如休眠或软关机状态(如果支持)。
系统是否从S0状态进入给定的电源管理状态取决于某些进入条件,例如时延容限。一般而言,与处于不那么深的电源管理状态的系统相比,处于较深电源管理状态的系统节省更多能量,但恢复到工作或S0状态需要更长的时间-即,产生更大的时延惩罚。例如,如果操作系统(或例如,SoC装置300,或处理器102,或数据结构305,或安全块360)接收到时延信息,例如,来自外围组件互连高速(PCIe)或I/O接口的指示连接的外围装置的时延容限的时延容限报告(LTR),则将此容限与从各种可用电源管理状态恢复S0状态所需的时延进行比较。如果电源管理状态中的一个满足时延容限,则已经满足电源管理状态的时延进入条件。为说明起见,假设延迟容限是唯一的进入条件,并且假设已经满足多于一个电源管理状态的时延容限,在一些示例中,系统进入较深的电源管理状态以节省更多电力。
在系统电源状态S3中,将数据或上下文保存到RAM并且关闭硬盘驱动器、风扇等。
在高级配置和电源接口(ACPI)系统中,带电待机(POS)、CPU关闭和睡眠状态称为S3状态,并且为方便起见,这些术语在本文中可互换地使用。S3状态被认为是一种深度电源管理状态,并且以更高的时延惩罚为代价节省更多电力。较深的电源管理状态也可以互换地称为较低的电源管理状态。
在ACPI系统中,休眠状态和软关机状态分别称为S4和S5状态,并且为方便起见,这些术语在本文中可以互换地使用。S5状态被认为是比S4状态更深的电源管理状态,并且以更高的时延惩罚为代价节省更多电力。
在系统电源状态S4中,将数据或上下文保存到磁盘。将RAM的内容保存到硬盘。硬件关闭所有装置。但是,将操作系统上下文保持在休眠文件中,系统在进入S4状态之前将所述休眠文件写入到磁盘。重新启动时,加载程序读取此休眠文件并跳转到系统的先前休眠前位置。这种状态通常称为休眠状态并且通常用于笔记本电脑。在典型的S4状态下,系统将其操作系统状态和存储器内容存储到休眠文件中的非易失性存储装置中。这些系统中的主存储器通常包括动态随机存取存储器(DRAM),它需要定期自刷新。由于将存储器状态保存到非易失性存储装置中的休眠文件,因此DRAM不再需要自刷新并且可以断电。通常,大部分系统在S4状态下断电,包括静态随机存取存储器(SRAM)。因此,进入S4状态具有降低功耗的优点。在确定是否进入S4状态时,S4状态的功耗节省与恢复系统的工作操作所需的时间(即,重新进入S0状态的时间-时延惩罚)进行平衡,所述工作操作例如包括为DRAM和其他组件供电以及从休眠文件中恢复存储器内容。
系统电源状态S5类似于S4状态,除了操作系统上下文没有保存且因此需要在唤醒时完全启动。在典型的S5状态下,系统不存储其操作系统和存储器状态。S5状态比S4状态更深且更慢。与在S4状态中一样,S5状态通过关闭DRAM存储器来节省电力;但是它可以更快地进入状态,因为它不需要生成休眠文件。此外,这些优点与通过为DRAM供电且重新启动用户会话来恢复S0状态所需的时间(即,时延惩罚)进行平衡。S5状态类似于机械关闭状态,不同之处在于向电源按钮供电以允许在完全重启后返回到S0状态。
在计算需求增加的计算世界中,其中预期频繁地拿起和放下装置并且预期装置在拿起后立即准备好运行,可能需要额外的电源状态模式。因此,可以设计新的S0ix活动空闲状态(存在多个活动空闲状态,例如S0i1、S0i3)。这些活动空闲状态可以传递与S3睡眠状态相同的降低功耗,但可以实现快速唤醒时间以返回到完整的S0状态,从而使装置立即开始工作。
S0ix状态可以包括工作状态S0的低功率空闲模式。系统在低功率空闲模式下保持部分地运行。在低功率空闲期间,每当合适的网络可用时,系统可以保持最新状态,并且还可以在需要例如OS维护的实时动作时唤醒。低功率空闲的唤醒速度明显快于S1-S3状态。
一些系统还提供系统可以从S0状态转变到的低功率空闲状态。在一些系统中,空闲状态被认为是S0状态的子状态,并且称为内部状态或S0ix状态(在ACPI用语中),并且为了方便起见,这些术语在本文中可互换地使用。与S4和S5状态一样,系统是否从S0状态进入S0ix状态取决于某些进入条件。S0ix状态可以包括短空闲状态和长空闲状态。在一些系统中,短空闲状态和长空闲状态分别称为S0i1状态和S0i3状态,并且为方便起见,这些术语在本文中可互换地使用。与S4和S5状态一样,每个S0ix状态包括各种电源管理干预。
在S0i1状态下,系统大部分保持活动状态。某些子系统被关闭或降压以节省电力。例如,在S0i1状态的一些实现方式中,CPU和/或GPU核心在一定百分比的时间内被电源门控或关闭(例如,通过一个或多个对应稳压器)。在一些实现方式中,某些电源轨在S0状态下仅例如由稳压器供电(或完全供电)(即,在所有其他系统电源管理状态;例如S4或S5状态下,例如由一个或多个对应稳压器完全关闭),并且统称为S0电压域。S0电压域通常始终由S0域稳压器供电。为了节省电力,S0域电路的某些部分在某些空闲条件下在S0i1状态下关闭,并且S0域的这些部分称为开关区域(ONO)。在S0电源管理状态下,电路的某些部分不会关闭或降低电压。在电路的某些部分在S0状态下从未关闭或降低电压的情况下,这些部分称为常开区域(AON)。
在S0i1状态下,显示器保持打开,从而显示静态页面。在一些实现方式中,使用面板自刷新(PSR)模式来显示静态页面。除显示器和数据结构外,例如存储器控制器的其他装置保持打开。在一些实现方式中,一些或所有多媒体处理器(例如,音频协处理器、成像信号处理器、视频编解码器等)保持打开。因为包括主存储器DRAM在内的大部分系统保持活动状态,所以系统可以进入S0i1状态并从S0i1状态(例如,在一些实现方式中微妙级)比从S4和S5状态(例如,在一些实现方式中,微秒级到超过一分钟)更快地恢复S0状态。例如,在典型的处理器速度下,S0i1状态会例如在击键之间频繁地出现。例如,由于主存储器DRAM保持通电,此优势与不如S4和S5状态显著的省电进行平衡。
在S0i3状态下,系统不如S0i1状态活跃。例如,在S0i3状态的一些实现方式中,为要在S0i3状态下关闭的组件供电的各种S0电源域电源轨在稳压器处进行门控或关闭。在一些实现方式中,门控的S0电源域电源轨与在S3电源状态下在稳压器处门控或关闭的电源轨相同,稳压器在S3状态下进行管理,并且所有S0域电源关闭以节省裸片上功率。本质上,S0电压域在S0i3状态下关闭。S0域电源轨用于满足SoC中各种块和/或域(“IP”)的供电需求,并且示例包括VDDCR_SOC、VDDP、VDD18和VDD33电源轨。例如,在一些实现方式中,VDDCR_SOC为所有主要的非CPU和/或非GPU系统IP供电,此电源轨提供固定或可变电源电压电平以支持CPU、GPU和多媒体处理器功能以及数据传输带宽和活动。在一些实现方式中,VDDP是提供定义的数字电压以支持需要固定电压源的IP的固定电压轨。VDD18是1.8V电压源并且VDD33是3.3V电压源。不同的I/O应用和规格需要VDD18和VDD33。
VDDCR_SOC在本文中用作描述针对各种状态的电源门控或降低或频率降低的示例。然而,在各种实现方式中,其他轨道或指定是可能的。在S0i3状态下,关闭各种S0域电源稳压器以节省裸片外功率。将存储在由这些电源供电的存储器(例如,SRAM)中的信息存储(即,“备份”)到其他存储器,例如主存储器(例如,DRAM)或备用存储器。在一些实现方式中,通用串行总线(USB)在S0i3状态下不会主动地传送数据并进入挂起模式。感测USB总线以检测从挂起模式唤醒的信号需要比用于数据传送的时钟更慢的时钟;因此,可以关闭提供给USB的时钟信号,从而使USB依靠自己的较慢时钟。此外,为要在S0i3状态下关闭的组件供电的系统的各种其他电压域可以关闭或进行“门控”。
由于系统在S0i3状态下的活动少于在S0i1状态下,因此系统使用的功率比S0i1状态低。然而,这种优势被抵消,因为系统无法尽快从S0i3恢复S0状态,例如由于需要时间将关闭的电源域恢复到工作电压,从而将备份信息恢复到其原始存储器(例如,SRAM),并且重新启动USB数据传送时钟。在一些实现方式中,将备份信息恢复到其原始存储器需要OS、BIOS、驱动器、固件等的参与,这会占用所需的时间。
为了从S0i1状态进入S0i3状态以产生净功率节省,系统需要保持在S0i3状态足够长的时间以抵消影响从S0i1进入S0i3状态并且从S0i3状态返回到S0i1或S0状态所涉及的各个步骤所需的功率。其间系统将需要保持在S0i3状态以产生功率节省的最短时间称为S0i3状态的驻留要求,并且在一些实现方式中为S0i3状态相对于S0i1状态的进入条件。
一些系统还提供系统可以从S0状态转变到的另一形式的长空闲电源管理状态。这种额外的长空闲电源管理状态称为S0i2状态,并且为方便起见,这些术语可互换地使用。在S0i2状态下,可以降低例如S0域电源(例如,VDDCR_SOC)的各种电源轨的电压以节省裸片上功率。还减少各种稳压器以节省裸片外功率。与关闭这些电压的S0i3状态相反,在S0i2状态中,将电压降低到保留数据状态信息的水平;即,存储在由这些电源供电的存储器(例如,SRAM)中的信息得到维护且不需要进行备份。在一些示例中,此水平称为保持电压或保持水平。在保持水平下,存储器具有足够的电力来维护所存储的信息,但没有足够的电力对信息执行正常操作。
由于系统在S0i2状态下的活动多于在S0i3状态下,因此系统在S0i2状态下使用的功率比在S0i3状态下高。然而,由于系统在S0i2状态下的活动少于在S0i1状态下,因此系统在S0i2状态下使用的功率比在S0i1状态下低。例如,由于将调节电压从保持水平上升到正常操作水平所需的时间,系统无法像从S0i1状态一样快地从S0i2状态恢复S0状态。然而,由于系统不需要恢复备份信息或重新打开S0电压源(除其他原因外),因此与从S0i3状态恢复相比,处于S0i2状态的系统需要减少时间来恢复S0状态。
为了从S0i1(或另一)状态进入S0i2状态以产生净功率节省,系统将需要保持在S0i2状态足够长的时间以抵消影响从S0i1进入S0i2状态并且从S0i2状态返回到S0i1状态所涉及的各个步骤所需的功率。其间系统将需要保持在S0i2状态以产生功率节省的最短时间称为S0i2状态的驻留要求,并且在一些实现方式中为S0i2状态的进入条件。
在一些实现方式中,将分层方法应用于电源管理状态处理。在一些示例中,S0i2状态的分层方法包括在S0i1状态与S0i3状态之间的多于一个子状态。在一些示例中,这些子状态称为S0i2.x子状态,并且为了方便起见,这些术语可互换地使用。在一些情况下,以这种方式将低功率状态划分为层级(例如,使用子状态)具有改进或优化功率节省和恢复时间的优点。与S0i1、S0i3、S4和S5状态一样,每个S0i2.x子状态包括各种电源管理干预。在一些示例中,S0i2.x子状态包括彼此相似的电源管理干预,但程度差异很大(或仅不同)。在各种实现方式中,不同的S0i2.x子状态提供不同量的功率节省并导致不同量的控制复杂性。
在示例S0i2.0子状态中,将VDDCR_SOC从其典型操作电压降低到保持电压。在保持电压下,VDDCR_SOC为其关联的存储器(例如,SRAM)提供足够的电力以保持所保存的信息,但低于从SRAM读取或写入到SRAM所需的电压。在此示例中,VDDCR_SOC的典型操作电压称为VS0(例如,0.7伏),并且对于S0i2.0子状态,所述电压降低到称为VS0i2.0的保持电压(例如,0.6伏)。
在一些示例中,关闭与VDDCR_SOC相关联的所有时钟,称为FSOi2.0(例如,100兆赫),以便减少由于切换导致的功耗。用于生成参考时钟信号的一个或多个锁相环(可称为CGPLL)保持活动状态。
在示例S0i2.1子状态中,如在S0i2.0子状态中,将VDDCR_SOC从其典型操作电压降低到保持电压。如前所述,对于此示例,VDDCR_SOC的典型操作电压称为VS0(例如,0.7伏)。然而,对于S0i2.1子状态,将VDDCR_SOC降低到称为VS0i2.1的保持电压(例如,0.5伏)。这假设当预期不读取或写入SRAM时,VS0i2.1伏也是与VDDCR_SOC相关联的存储器(例如,SRAM)的有效保持电压。
而且,在此示例中,关闭与VDDCR_SOC相关联的所有时钟,并且关闭生成参考时钟信号(CGPLL)的锁相环以节省额外的功率。在一些实现方式中,例如用于I/O的各种裸片外时钟从CGPLL切换到晶体振荡器或本地环形振荡器(RO)时钟源。
如从这些示例中可以看出,当也削减活动时钟和数据切换功率时,S0i2.1子状态比S0i2.0子状态减少或消除更多的功耗,但由于除了其他方面,从保持电压转变到SRAM操作电压所需的较长时间以及恢复时钟的额外时间,将花费更长的时间恢复到S0状态。
在这些示例中,从电压电平的角度来看,与其他电源管理状态相比,SOi2.x子状态之间的差异主要是(或在一些示例中,完全是)程度问题。例如,S0i2.0和S0i2.1子状态将VDDCR_SOC降低到保持电压。在此示例中,不同之处在于电压降低的程度。换句话说,S0i2.x子状态主要包括关于电源电压(例如,保持电压的电平)的相同电源管理干预,只是程度不同。电压差也可以在降低的操作电压(降低的开关)与保持电压(非开关)之间。
从时钟的角度来看,可以说S0i2.0和S0i2.1子状态不止在程度上不同。在示例S0i2.0子状态中,时钟频率设置为FS0i2.0(例如,100兆赫或更低)。在一些实现方式中,以这种方式保持降低速率的时钟,而不是关闭它们允许唤醒事件在S0域中发生。S0i2.0子状态中的此种S0域唤醒源的示例是PCIe带内唤醒。在PCIe带内唤醒中,PCIe端点(EP)或根能够由于常规PCIe信令模拟唤醒。然而,在S0i2.1子状态中,关闭所有时钟。因此,在一些实现方式中,在S0域中不可能有任何操作(例如,唤醒事件)。在一些实现方式中,使用在S0i2.1子状态期间保持通电(并且仅在低于S5的状态期间关闭)的S5域电路来处理S0i2.1子状态中的唤醒事件。
以这种方式提供分层的S0i2.x子状态还提供允许对电源管理状态进行更精细校准的可能优势。例如,在一些实现方式中,具有更多数量的S0i2.x子状态(例如,S0i2.2、S0i2.3等)的系统能够支持SRAM保持电压的更精细差异,并且因此支持时延惩罚。在一个此种示例中,在对SRAM保持有效的范围内,每个更深的子状态具有额外低50或100毫伏的保持电压。原则上,S0i2.x子状态的数量是任意的。然而,越来越多数量的S0i2.x子状态在复杂性与功率节省之间产生更大的权衡。
在图3的系统300中示出一个此种低功率空闲。例如,系统300包括低功率空闲状态,例如S0i2 D23。当置于D23状态时,保留存储器控制器370的状态。存储器控制器370的状态的保留允许通过信号进行通知,并且给定始终按需要从自刷新中唤醒并引导存储器控制器370。这种能力可能对处于低功率状态的共享域装置很有用。D23状态允许装置从睡眠状态受控且更快地唤醒,而不是在不保留存储器控制器370的状态的情况下发生。D23存储器控制器状态实现存储器自刷新状态,同时在数据结构305、存储器控制器370和SoC 300之间引入互锁。这种互锁保证在电压上升后允许通过数据结构305和存储器控制器370进行存储器访问。之所以提到D23状态,是因为它与S0i2状态相关联,其中可以将电压降低到保持或接近保持水平。以此类推,D2状态是电压不降低且不需要互锁的状态。D3是与S0i3或S3状态相关联的状态。通常,在D3状态下,数据结构305和存储器控制器370状态会丢失,然后需要在退出时恢复。
存储器控制器D23状态协调两种不同的状态-存储器控制器的D2和存储器PHY的D3(或低功率状态3)。在存储器PHY低功率状态D3(在一些实方案例中,称为LP3)中,关闭PHY电压轨并且PHY与存储器本身一起置于自刷新状态。这些是降低S0i2 SoC状态下的功耗的关键因素。同时,如果SoC已置于S0i3或S3状态,则存储器控制器保持在比它原本更活跃的状态。这种更活跃的状态(D23)允许进行互锁以逐步退出S0i2状态。第一数据结构305/存储器控制器370电压上升,然后恢复时钟,最后将存储器PHY从D3/LP3状态转变。
当芯片上硬件和固件检测到系统处于长时间空闲状态时,启用S0i2上处于D23状态的存储器控制器。在S0i2状态下,显示器关闭状态触发长空闲显示器关闭状态。I/O保持通电。通过在DRAM处于刷新状态时将PHY断电来粗略估计在D23状态中的长空闲时间,并且可以避免S3状态。
图4示出进入D23状态的方法400。一旦处于S0i2状态,则基于长空闲的裸片上硬件和固件检测系统,数据结构305在进入存储器自刷新时向存储器控制器370发送DstateSel信号以选择D23状态。在步骤410,数据结构305基于特定度量和SMU通知选择D23状态作为目标状态。存储器控制器选择D3(或LP3)状态。在步骤420,数据结构305在状态上自动互锁。在步骤430,通过到达固件的WAKE边带信令退出以清除寄存器退出块,并且启用数据结构C状态进入中断。这使得SMU 360能够阻止存储器访问,减少数据结构305和存储器控制器370时钟,并且将SoC电压降低到保持水平或接近保持水平。
在步骤440进入D23 S0i2状态且在步骤450关闭存储器PHY,并且在步骤460减少CLK并保持。在步骤470,从D23状态的退出条件由外部条件或WAKE配置。
图5示出退出D23状态的方法500。SMU由带内或带外事件发信号通知,以将SoC从S0i2状态唤醒。SMU通过以下方式开始退出流程:通过在步骤510将PHY通电来升高SoC电压并且在步骤520增加数据结构305和存储器控制器370时钟。在步骤530,初始化PHY状态。在步骤540,清除互锁。仅在步骤550解除断言WAKE并且解除阻止存储器访问之后开始存储器控制器370自刷新退出。即使检测到传入流量,也禁止存储器控制器开始退出D23保持状态。甚至在升高电压之前,也可以允许其他组件访问存储器。当断言WAKE时,存储器控制器可以提供对存储器的访问。在唤醒后,将与唤醒事件相关联的直接存储器访问(DMA)或处理器活动传播到存储器。PHY退出空闲状态并且存储器退出自刷新。撤销数据结构305设置,因此在步骤560启用数据结构305以用于下一次低功率进入。
应理解,SoC复位通常在OS控制下发生。在D23中,为存储器控制器370保留状态。可以始终按需提供信号以从自刷新中唤醒。
D23状态保存系统,以便组件使SoC联机(包括但不限于电压、时钟)恢复执行。
在特定实施方案中,D23状态存储器互锁使用两个位/指示来实现。基于带内或带外通知启用从此空闲状态的唤醒(所述位在此特定实施方案中称为SMUWAKE_ENABLE)。空闲状态可以通过数据结构停用退出。两个位/指示中的第一位/指示仅允许由SMU限定的特定唤醒事件以启动唤醒过程。两个位/指示中的第二位/指示仅在第二位(停用以退出数据结构低功率状态)被清除时才允许退出,这在电压上升到安全水平时发生。
应理解,基于本文的公开内容,许多变型是可能的。虽然上面以特定的组合描述特征和要素,但是每个特征或要素可以单独使用而无需其他特征和要素,或者以具有或不具有其他特征和要素的各种组合使用。
图中所示和/或本文所描述的各种功能单元(包括但不限于处理器102、输入驱动器112、输入装置108、输出驱动器114、输出装置110、加速处理装置116、调度器136、图形处理流水线134、计算单元132、SIMD单元138)可以被实现为通用计算机、处理器或处理器核心,或者被实现为程序、软件或固件,存储在非暂时性计算机可读介质或另一种介质中,可由通用计算机、处理器或处理器核心执行。所提供的方法可以在通用计算机、处理器或处理器核心中实现。合适的处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可以通过使用处理后的硬件描述语言(HDL)指令的结果和包括网表的其他中间数据(此类指令能够存储在计算机可读介质上)配置制造工艺来制造这种处理器。此种处理的结果可以是掩模作品,然后在半导体制造过程中使用所述掩模作品来制造实现本公开的特征的处理器。
本文提供的方法或流程图可以在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实现,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(例如内部硬盘和可移动磁盘)、磁光介质以及光学介质(例如CD-ROM盘以及数字通用光盘(DVD))。

Claims (20)

1.一种用于计算机处理装置中的电源管理的方法,所述方法包括:
通过数据结构选择低功率空闲模式作为目标状态;
通过存储器控制器选择长空闲状态;
经由所述计算机处理装置阻止存储器访问;
减少所述数据结构和所述存储器控制器时钟;
降低片上系统(SoC)电压;并且
关闭物理接口(PHY)电压。
2.如权利要求1所述的方法,其中所述阻止存储器访问由所述数据结构进行。
3.如权利要求1所述的方法,其中基于系统管理单元(SMU)信令选择所述长空闲状态。
4.如权利要求1所述的方法,其中系统管理单元(SMU)阻止存储器访问。
5.如权利要求1所述的方法,其中将所述SoC电压降低到保持水平。
6.如权利要求1所述的方法,其中将所述SoC电压降低到接近保持水平。
7.一种用于计算机处理装置中的电源管理的方法,所述方法包括:
发出信号以唤醒片上系统(SoC);
通过升高SoC电压并且增加数据结构时钟和存储器控制器时钟来启动退出流程;
解除阻止对存储器的存储器访问;
将与唤醒事件相关联的活动传播到解除阻止访问的所述存储器;
通过打开物理层(PHY)电压退出低功率模式;并且
通过所述存储器退出自刷新。
8.如权利要求7所述的方法,其中所述解除阻止存储器访问由所述数据结构进行。
9.如权利要求7所述的方法,其中信令是系统管理单元(SMU)信令。
10.如权利要求7所述的方法,其中从保持水平或接近保持水平升高所述SoC电压。
11.如权利要求7所述的方法,其中发出信号以唤醒SoC是基于带内事件。
12.如权利要求7所述的方法,其中发出信号以唤醒SoC是基于带外事件。
13.如权利要求7所述的方法,其中所述所传播的活动包括直接存储器访问(DMA)活动。
14.如权利要求7所述的方法,其中所述所传播的活动包括处理器活动。
15.一种计算机处理装置,所述装置包括:
至少一个处理器,其耦合到至少一个存储器;
所述至少一个处理器包括:
电路,所述电路被配置为在多个电源管理状态与至少一个电源管理子状态之间转变,所述多个电源管理状态包括第一电源管理状态、第二电源管理状态和第三电源管理状态,所述第二电源管理状态包括第一子状态,
所述电路还包括:
发出信号以唤醒片上系统(SoC);
通过升高SoC电压并且增加数据结构时钟和存储器控制器时钟来启动退出流程;
解除阻止对存储器的存储器访问;
将与唤醒事件相关联的活动传播到解除阻止访问的所述存储器;
通过打开物理层(PHY)电压退出低功率模式;并且
通过所述存储器退出自刷新。
16.如权利要求15所述的装置,其中所述解除阻止存储器访问由所述数据结构进行。
17.如权利要求15所述的装置,其中信令是系统管理单元(SMU)信令。
18.如权利要求15所述的装置,其中从保持水平或接近保持水平升高所述SoC电压。
19.如权利要求15所述的装置,其中发出信号以唤醒SoC是基于带内事件和带外事件中的一个。
20.如权利要求15所述的装置,其中所述所传播的活动包括直接存储器访问(DMA)活动和处理器活动中的至少一个。
CN202080091030.1A 2019-12-30 2020-11-25 长空闲状态系统和方法 Pending CN114902158A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/730,252 2019-12-30
US16/730,252 US20210200298A1 (en) 2019-12-30 2019-12-30 Long-idle state system and method
PCT/US2020/062399 WO2021137982A1 (en) 2019-12-30 2020-11-25 Long-idle state system and method

Publications (1)

Publication Number Publication Date
CN114902158A true CN114902158A (zh) 2022-08-12

Family

ID=76547684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080091030.1A Pending CN114902158A (zh) 2019-12-30 2020-11-25 长空闲状态系统和方法

Country Status (6)

Country Link
US (1) US20210200298A1 (zh)
EP (1) EP4085317A4 (zh)
JP (1) JP2023508659A (zh)
KR (1) KR20220122670A (zh)
CN (1) CN114902158A (zh)
WO (1) WO2021137982A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230034633A1 (en) * 2021-07-30 2023-02-02 Advanced Micro Devices, Inc. Data fabric c-state management
US20230197123A1 (en) * 2021-12-20 2023-06-22 Advanced Micro Devices, Inc. Method and apparatus for performing a simulated write operation
CN114879829B (zh) * 2022-07-08 2023-04-11 摩尔线程智能科技(北京)有限责任公司 功耗管理方法、装置、电子设备、图形处理器及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101512493B1 (ko) * 2009-02-06 2015-04-15 삼성전자주식회사 저전력 시스템온칩
US8656198B2 (en) * 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8356155B2 (en) * 2010-09-13 2013-01-15 Advanced Micro Devices, Inc. Dynamic RAM Phy interface with configurable power states
US8892918B2 (en) * 2011-10-31 2014-11-18 Conexant Systems, Inc. Method and system for waking on input/output interrupts while powered down
US9411394B2 (en) * 2013-03-15 2016-08-09 Seagate Technology Llc PHY based wake up from low power mode operation
US9541984B2 (en) * 2013-06-05 2017-01-10 Apple Inc. L2 flush and memory fabric teardown
US9671857B2 (en) * 2014-03-25 2017-06-06 Qualcomm Incorporated Apparatus, system and method for dynamic power management across heterogeneous processors in a shared power domain
US10042412B2 (en) * 2014-12-08 2018-08-07 Intel Corporation Interconnect wake response circuit and method
TWI653527B (zh) * 2014-12-27 2019-03-11 美商英特爾公司 當計算元件運作時致能系統低電力狀態之技術
US9582068B2 (en) * 2015-02-24 2017-02-28 Qualcomm Incorporated Circuits and methods providing state information preservation during power saving operations
CN107132904B (zh) * 2016-02-29 2020-12-15 华为技术有限公司 一种ddr系统的控制系统及控制方法
US20180018118A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Power management in scenarios that handle asynchronous stimulus
US10978136B2 (en) * 2019-07-18 2021-04-13 Apple Inc. Dynamic refresh rate control

Also Published As

Publication number Publication date
JP2023508659A (ja) 2023-03-03
EP4085317A4 (en) 2024-01-17
KR20220122670A (ko) 2022-09-02
WO2021137982A1 (en) 2021-07-08
US20210200298A1 (en) 2021-07-01
EP4085317A1 (en) 2022-11-09

Similar Documents

Publication Publication Date Title
US8271812B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US6711691B1 (en) Power management for computer systems
US7430673B2 (en) Power management system for computing platform
US11455025B2 (en) Power state transitions
TWI603186B (zh) 於圖形子系統中進入和退出休眠模式的系統和方法
KR101324885B1 (ko) 복수의 회로들에서의 성능 파라미터들 조정
CN114902158A (zh) 长空闲状态系统和方法
US20120102344A1 (en) Function based dynamic power control
US20110138388A1 (en) Methods and apparatuses to improve turbo performance for events handling
KR100380196B1 (ko) 버스 상에 액티비티가 존재하지 않는 동안에 버스 클럭을정지시키기 위한 방법 및 장치
JP2007249660A (ja) 情報処理装置およびシステムステート制御方法
US10304506B1 (en) Dynamic clock control to increase stutter efficiency in the memory subsystem
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