CN104871114A - 用于集成电路的空闲阶段预测 - Google Patents
用于集成电路的空闲阶段预测 Download PDFInfo
- Publication number
- CN104871114A CN104871114A CN201380067714.8A CN201380067714A CN104871114A CN 104871114 A CN104871114 A CN 104871114A CN 201380067714 A CN201380067714 A CN 201380067714A CN 104871114 A CN104871114 A CN 104871114A
- Authority
- CN
- China
- Prior art keywords
- idle condition
- duration
- interval
- processor core
- state
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 93
- 238000003860 storage Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 17
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 230000007958 sleep Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 48
- 238000010586 diagram Methods 0.000 description 30
- 230000015654 memory Effects 0.000 description 22
- 230000000694 effects Effects 0.000 description 19
- 238000009826 distribution Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 17
- 230000002902 bimodal effect Effects 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 11
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000005059 dormancy Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明公开了一种用于集成电路中的空闲阶段预测的方法和装置。在一个实施方案中,一种集成电路(IC)包括功能单元,其被配置成在活动状态的间隔与空闲状态的间隔之间循环。所述IC还包括预测单元,其被配置成记录针对所述空闲状态的多个间隔的空闲状态持续时间的历史。基于所述空闲状态持续时间的历史,所述预测单元被配置成生成针对所述空闲状态的下一个间隔的持续时间的预测。在多个用途中,功率管理单元可以使用所述预测来确定是否要将所述功能单元置于低功率(例如,休眠)状态。
Description
技术领域
本公开涉及集成电路,并且更具体地来说,涉及管理集成电路的功耗。
背景技术
管理诸如计算机系统处理器和多种类型的芯片上系统(SoC)IC等集成电路(IC)中的功耗越来越重要。这不仅在IC主动地执行工作时,而且在IC处于空闲时均是事实。具体来说,IC中的晶体管的特征尺寸小可能导致漏电电流,并由此在其它方面未执行任何工作的功能单元中导致功耗。
当IC的功能单元转为空闲时,功率管理硬件或软件可以采取多种动作来降低功耗。降低时钟频率或门控时钟可以降低动态功耗。降低供电电压可以产生功耗上的额外降低。在一些情况中,可以在功能单元处于空闲时对该功能单元进行门控(即,可以从其撤除电力)。这可以称为深度休眠状态。
可以通过执行多种动作来实现进入低功率或休眠状态。考虑例如具有多个处理器核心和其上执行的功率管理单元的SoC。将处理器核心置于休眠状态中执行的动作可以包括刷新将失去供电的任何高速缓存、关断来自锁相环(PLL)的电源、保存系统状态等。当进入低功率或休眠状态时,处理器核心可以保持在此处直到导致唤醒该核心的启动的外部中断或其它动作为止。
发明内容
公开了一种用于集成电路中的空闲阶段预测的方法和装置。在一个实施方案中,一种方法包括使集成电路(IC)的功能单元在活动状态的间隔与空闲状态的间隔之间循环。该方法还包括记录针对空闲状态的多个间隔的空闲状态持续时间的历史,并基于空闲状态持续时间的历史来预测空闲状态的下一个间隔的持续时间。
在一个实施方案中,一种IC包括被配置成在活动状态的间隔与空闲状态的间隔之间循环的功能单元。该IC还包括被配置成记录针对空闲状态的多个间隔的空闲状态持续时间的历史的预测单元。该预测单元还被配置成基于空闲状态持续时间的历史来预测空闲状态的下一个间隔的持续时间。
附图说明
阅读下文详细描述以及参见附图时,本发明的其它方面将变得明显,现在对附图进行简要描述。
图1是集成电路(IC)的一个实施方案的框图。
图2是图示IC的一个实施方案中的功能单元的操作的图;
图3是图示功率管理单元的一个实施方案和与之耦合的预测单元的一个实施方案的框图。
图4包括多个直方图以图示预测单元的各种实施方案使用的分段(binning)方法。
图5是图示用于基于平均值来预测空闲状态持续时间的方法的一个实施方案的流程图。
图6是图示用于基于最快增长段(bin)的确定来预测空闲状态持续时间的方法的一个实施方案的流程图。
图7是图示用于基于空闲状态持续时间的双峰分布来预测空闲状态持续时间的方法的一个实施方案的流程图。
图8是图示用于基于阈值分开的段对来预测空闲状态持续时间的方法的一个实施方案的流程图。
图9是图示用于使用分段方法来预测IC的功能单元的活动时间的方法的一个实施方案的流程图。
图10是图示计算机可读存储介质的一个实施方案的框图。
本文公开的主题易于设想多种修改和替代形式,而其特定实施方案在附图中通过实例的方式示出并将在本文予以详细描述。然而,应该理解,附图及其描述无意限制于所公开的特定形式,而相反,应涵盖落在所附权利要求定义的本公开的精神和范围内的所有修改、等效物和替代物。
具体实施方式
概述
本公开涉及用于基于先前空闲状态持续时间的历史预测IC的功能单元的下一个空闲状态的持续时间的多种方法。该预测信息可以用于多种目的,包括(但不限于)确定是否允许该功能单元进入某些低功率状态(例如,休眠状态)以及何时退出此类低功率状态。
在示范实施方案中,IC可以是具有多个处理器核心的芯片上系统(SoC)。SoC可以包括被配置成监视处理器核心的活动以确定是否有处理器核心已进入空闲状态的预测单元。空闲状态一般可以定义为其中IC的功能单元未在执行工作所处的状态。在处理器核心的情况中,可以采用多种方式来定义空闲状态,诸如处理器核心未在执行任何指令所处的状态。该预测单元可以包括确定处理器核心处于空闲状态的时间量的定时器,其中定时器在处理器核心恢复活动状态中的操作(例如,处理指令)时复位。当空闲状态的给定间隔结束时,预测单元可以记录该间隔的持续时间。该预测单元还可以将空闲状态的最近N个间隔(其中N是大于1的整数)的持续时间历史细分成段。使用段指示的信息,预测单元可以生成针对下一个空闲状态的持续时间的预测。
可以使用多种方法以基于空闲状态持续时间历史来生成预测。示例方法包括计算平均空闲状态持续时间并基于此来进行预测,基于具有最快速增长计数的段来进行预测,在空闲状态时间的历史分布为双峰时基于两个段中较大者来进行预测等等。正如上文提到的,可以使用此类预测来确定是否要在空闲时间期间进入低功率状态。例如,使用空闲状态时间的预测,功率管理单元可以基于预测的空闲时间中可获得的节能来确定进入休眠(即,功率门控)状态是否会导致过量性能丧失。
具有功率管理单元的芯片上系统(SoC)及其操作:
图1是耦合到存储器的集成电路(IC)的一个实施方案的框图。在此示例中,IC2和存储器6连同显示器3和显示器存储器300形成计算机系统10的至少一部分。在示出的实施方案中,IC 2是具有多个处理节点11的芯片上系统(SoC)。在本特定实施例中,处理节点11是处理器核心,并且由此也表示为核心#1、核心#2等。注意,本文要描述的方法可以施加到单独、唯一的IC晶片上的其它布置,诸如实现多个处理器(其可以是单核心或多核心处理器)的多处理器计算机系统。此外,仅有一个处理节点11的多个实施方案也是可能且可设想的。
在所示的实施方案中,每个处理节点11耦合到北桥12。北桥12可以为每个处理节点11提供范围广的多种接口功能,包括至存储器的接口和至多种外设的接口。此外,北桥12包括被配置成管理每个处理节点11的功耗的功率管理单元20。注意,在一些实施方案中,功率管理单元20可以在北桥12外部的位置来实现。功率管理单元20执行的功率管理功能是基于处理节点11的活动水平确定是否要进入多种低功率状态。例如,如果处理节点11处于空闲状态,则功率管理单元20可以降低对其提供的电压和/或降低对其提供的时钟信号频率。此外,如果给定的处理节点11持续足够时间量处于空闲,则功率管理单元20可以通过门控(即,关断)对其提供的时钟信号以及对其提供的功率来将其置于休眠状态。功率管理单元20可以在对处理节点11提供门控功率和时钟信号之前向处理节点11提供多种信号,以使其能够执行如刷新高速缓存、保存状态等的动作。
在所示的实施方案中,北桥12包括耦合到功率管理单元20的预测单元21。预测单元21被配置成存储并分析与每个处理器核心11的先前空闲状态的历史相关的信息,并且还可以存储与先前活动状态的历史相关的信息。具体来说,预测单元21可以存储有关每个处理器核心11的多个先前出现的空闲状态的相应持续时间的信息。预测单元21可以存储有关每个处理器核心11的多个先前出现的活动状态的相应持续时间的信息。可以将每个处理器核心的持续时间信息安排在段中,正如下文进一步论述的。使用空闲状态的信息持续时间,预测单元21可以预测每个处理器核心11的下一个空闲状态的持续时间。
使用预测单元21作出的预测,功率管理单元20可以响应确定处理器核心11处于空闲状态而确定是否要将处理器核心11置于低功率状态。本文定义的低功率状态可以是将对处理器核心提供的电压从其最大值降低的状态,将时钟信号的频率降低的状态,对处理器核心抑制时钟信号(时钟门控)的状态,其中之一从处理器核心撤除电力(功率门控)或前者任一组合。从处理器核心同时撤除时钟和电源的低功率状态可以称为休眠状态。
因为进入低功率状态中存在能量成本和性能成本方面的开销,所以功率管理单元20可以使用预测来确定进入低功率状态是否可以在损益平衡点处或高于损益平衡点提供功率节省。例如,进入休眠状态可能需要刷新一个或多个高速缓存、保存处理器状态、关断PLL等。在从休眠状态退出时,PLL可能需要经过唤醒时段之后才完全地工作。在从休眠状态退出时还可能需要恢复先前状态。在从休眠状态退出之后重新启动操作时也可能频繁地出现高速缓存未命中。相应地,进入休眠状态(以及更广义地,进入低功率状态)造成多种成本。如果预测单元21预测下一个空闲状态可能是短持续时间的,则功率管理单元20可以放弃进入低功率状态,因为这样做造成的成本可能超过可获得的功率节省的收益。相反,如果预测单元21预测下一个空闲状态可能是长持续时间的,则进入低功率/休眠状态获得的功率节省可以超过进入该状态的成本。由此,在后一种情况中,功率管理单元20可以响应确定处理器核心11处于空闲状态且它预测空闲持续时间足够长以证明成本合理而将空闲的处理器核心11置于低功率/休眠状态。
如上文提到的,预测单元21还可以预测活动状态时间。功率管理单元20和/或受影响的处理器核心11可以使用预测的活动状态时间来优化性能和功耗。例如,如果预测单元21预测给定的处理器核心11将仅持续短时间处于活动状态,则功率管理单元20可以使该核心内高速缓存的一部分被启用,因为对于该活动状态实例不太可能需要完整高速缓存。对于较长的预测活动状态持续时间,可以启用高速缓存的更大部分。
除了维护先前空闲(以及在一些情况中,活动)状态持续时间的历史数据外,预测单元21还可以维护预测精确度的历史。这可以用于生成有关将来预测的置信度度量,并且还可以提供反馈以相应地调整将来预测。
在各种实施方案中,处理节点11的数量可以少至1,或可以是多达用于在IC晶片上的实现的可行数量。在多核心实施方案中,处理节点11可以彼此完全相同(即,同质多核心)或一个或多个处理节点11可以彼此不同(即,异质多核心)。处理节点11各可以包括一个或多个执行单元、高速缓存存储器、调度器、分支预测电路等。此外,每个处理节点11可以被配置成断言访问可以用作计算机系统10的主存储器的存储器6的请求。这类请求可以包括读请求和/或写请求,并且可以最初是北桥12从相应处理节点11接收的。在所示的实施方案中,可以经存储器控制器18来路由传送访问存储器6的请求。
在所示的实施方案中,I/O接口13还耦合到北桥12。I/O接口13可以用作计算机系统10中的南桥装置。多个不同类型的外设总线可以耦合到I/O接口13。在此特定实施例中,这些总线类型包括外设组件互连(PCI)总线、PCI-扩展(PCI-X)、PCIE(PCI Express)总线、吉比特以太网(GBE)总线和通用串行总线(USB)。然而,这些总线类型是示范性的,以及还可以将许多其它总线类型耦合到I/O接口13。可以将外设装置耦合到这些外设总线的其中一些或全部。此类外设装置包括(但不限于)键盘、鼠标、打印机、扫描仪、游戏杆或其它类型的游戏控制器、媒体录制装置、外部存储装置、网络接口卡等。这些外设装置中可以经对应外设总线耦合到I/O单元13的至少其中一些可以使用直接存储器访问(DMA)来断言存储器访问请求。可以将这些请求(可以包括读请求和写请求)经I/O接口13传送到北桥12,并且可以将其路由传送到存储器控制器18。
在所示实施方案中,IC 2包括耦合到计算机系统10的显示器3的显示器/视频引擎14。显示器3可以是平板LCD(液晶显示器)、等离子显示器、CRT(阴极射线管)或任何其它适合的显示器类型。显示器/视频引擎14可以执行各种视频处理功能以及将处理的信息提供到显示器3以作为可视信息来进行输出。如3D处理、视频游戏的处理和更复杂类型的图形处理的一些视频处理功能可以由图形引擎15来执行,其中处理的信息经北桥12被中继到显示器/视频引擎14。
在此特定实施例中,计算机系统10实现非统一存储器架构(NUMA)实现方式,其中视频存储器和RAM是彼此分开的。在所示实施方案中,计算机系统10包括耦合到显示器/视频引擎14的显示器存储器300。由此,取代从存储器6接收视频数据,而是由显示器/视频引擎14从显示器存储器300访问视频数据。这又可以允许经这些外设总线之一耦合到I/O接口13的每个核心11和任何外设装置具有更大的存储器访问带宽。
在所示实施方案中,IC 2包括耦合成接收系统时钟信号的锁相环(PLL)单元4。PLL单元4可以包括被配置成生成对应时钟信号以及将对应时钟信号分配到每个处理节点11的多个PLL。在此实施方案中,每个处理节点11接收的时钟信号是彼此独立的。此外,本实施方案中的PLL 4被配置成个别地控制和更改彼此独立地提供到处理节点11中的相应处理节点的每个时钟信号的频率。正如下文将进一步详细论述的,处理节点11中的任何给定处理节点接收的时钟信号的频率可以根据对其施加的性能要求来进行提升或降低。可从PLL单元4输出的时钟信号所在的各种频率可以对应于每个处理节点11的不同工作点。相应地,可以通过更改其相应接收的时钟信号的频率来实现特定处理节点11的工作点的更改。
在更改一个或多个处理节点11的相应工作点包括更改一个或多个相应时钟频率的情况中,功率管理单元20可以更改提供到PLL单元4的数字信号SetF[M:0]的状态。响应这些信号中的更改,PLL单元4可以更改受影响处理节点的时钟频率。此外,功率管理单元20还可以促使PLL单元4抑制相应的时钟信号提供到处理节点11中的对应处理节点。
在所示的实施方案中,IC 2还包括电压调节器5。在其它实施方案中,电压调节器5可以与IC 2分开来实现。电压调节器5可以向每个处理节点11提供供电电压。在一些实施方案中,电压调节器5可以提供可根据特定工作点改变的供电电压(例如,提高供电电压以获得更高性能、降低供电电压以获得更大功率节省)。在一些实施方案中,每个处理节点11可以共享电压平面。由此,此类实施方案中的每个处理节点11在与处理节点11中其它处理节点相同的电压下工作。在另一个实施方案中,不共享电压平面,并由此,可以独立于处理节点11中其它处理节点所接收的相应供电电压来设置和调整每个处理节点11所接收的供电电压。由此,在具有非共享电压平面的实施方案中,可以选择性且彼此独立地将包括调整供电电压的工作点调整施加到每个处理节点11。在更改工作点包括更改一个或多个处理节点11的工作电压的情况中,功率管理单元20可以更改提供到电压调节器5的数字信号SetV[M:0]的状态。响应信号SetV[M:0]的改变,电压调节器5可以调整提供到处理节点11中受影响处理节点的供电电压。在要从处理节点11之一撤除电力(即门控)的实例中,功率管理单元20可以设置SetV[M:0]信号中对应的一个的状态以使电压调节器5不向受影响处理节点11供电。
应该注意,其中在分开的IC上实现上文论述的各种单元的实施方案是可能的且可设想的。例如,可设想一个实施方案,其中在第一IC上实现核心11,北桥12和存储器控制18位于另一个IC上,而其余功能单元位于又一个IC上。一般来说,上文论述的功能单元可以在如期望地多或少的不同IC上实现,以及在单个IC上实现。还要注意,虽然上文论述着重于SoC的特定实施方案,但是本文描述的各种方法可以与实现功率管理功能的任何IC结合来使用。
图2是图示上文所示的IC 2的实施方案中的处理器核心的操作的图。如图2所示,处理器核心11的操作可以在活动状态的间隔与空闲状态的间隔之间循环。在活动状态中的操作期间,处理器核心正在处理指令和执行其它有用功。当处于空闲状态时,处理器核心11未在处理指令或执行任何有用功。如果空闲状态下的时间足够长,则将处理器核心11置于低功率状态或甚至休眠状态可以是有益的。在休眠状态中,可以对处理器核心门控,即可以从其撤除电力。典型地,在休眠状态中也将处理器核心11门控。
图2中示出包含进入休眠状态以及退出休眠状态的事件序列。在执行任何动作以将处理器核心11置于休眠状态之前,首先确定处理器核心11为空闲。在所示的实施例中,可以通过检测处理器核心11持续时间T_检测未执行有用功或其它活动来作出处理器核心11是空闲的确定。一旦跨越此阈值,则功率管理单元20可以确定要将处理器核心11置于休眠状态。
在从处理器核心11撤除电力之前,刷新其中实现的任何高速缓存。刷新高速缓存包括将其中驻留的任何已修改数据回写到主存储器和/或较低级高速缓存。由此执行高速缓存刷新以保持存储器内容的一致性。在一些情况中,还可以执行处理器核心11的状态保存(“状态保存”)。保存处理器核心11的状态可以包括保存各种寄存器的状态、各种保持触发器(retention flop)中存储的数据等。可以将此信息保存到处理器核心11外部的另一个存储器中。一旦高速缓存刷新和状态保存操作完成,则从处理器核心11撤除电力以将其置于休眠状态。在退出休眠而对处理器核心11恢复供电之后,所保存的状态可以恢复。恢复保存的状态时,处理器核心11可以恢复活动状态中的操作。
预测单元和功率管理单元:
现在参考图3,其示出图示预测单元21的一个实施方案和功率管理单元20的实施方案的框图。在所示实施方案中,预测单元21包括活动监视器212,活动监视器212被耦合以接收来自各种处理器核心11的活动的指示。在更一般性的实施方案中,可以耦合活动监视器212以从IC上实现的各种不同类型的功能单元接收活动指示。返回到此特定实施方案,活动监视器212监视的活动的类型可以包括(但不限于)指令已执行、指令已引退、存储器请求等。此外,活动监视器212可以监视一种或多种类型的活动。
所示实施方案中的预测单元21包括多个定时器213(在此处示出为包含这些定时器的每一个的单个框)。可以对应于要监视其活动的每个功能块包含一个定时器213。这些定时器213的每一个可以在活动监视器212从其对应的处理器核心检测到活动时被复位。复位之后,给定的定时器213可以开始跟踪自最近活动起的时间。每个定时器213可以报告自最近在其对应处理器核心11中检测到活动起的时间。自最近活动起的时间达到给定处理器核心11的某个阈值之后,活动监视器212可以指示该给定核心为空闲。活动监视器212还可以基于从对应定时器213接收的时间值继续记录处理器核心11为空闲的时间,直到核心恢复活动为止。
在确定处于空闲状态之后,一旦处理器核心11恢复活动,则活动监视器212可以将该核心中空闲状态的持续时间记录在事件存储装置214中。在所示的实施方案中,事件存储装置214可以存储正在被监视空闲状态时间的每个处理器核心11的空闲状态的每个最近N个实例的持续时间。在一个实施方案中,事件存储装置214可以包括多个先入先出(FIFO)存储器,每个处理器核心11对应一个。事件存储装置214中的每个FIFO可以存储其对应处理器核心11的空闲状态的最近N个实例的持续时间。随着空闲状态的新实例的持续时间被记录在与给定核心对应的FIFO中,最旧的空闲状态实例的持续时间可以被重写。
分段存储装置215耦合到事件存储装置214,并且针对每个处理器核心11,存储对应段中的空闲状态持续时间的计数以便生成空闲状态持续时间的分布。分段存储装置215可以包括用于从事件存储装置214读取记录的持续时间的逻辑,并且可以生成每个段的计数值。随着空闲状态的附加实例的发生,旧持续时间数据被新持续时间重写,在分段存储215中的逻辑可更新段中的计数值。下文参考图4进一步图示分段方法。
预测器218耦合到分段存储装置215。基于给定处理器核心11的空闲状态持续时间的分布,预测器218可以生成有关下一个空闲状态的持续时间的预测。可以使用多种方法来生成预测,并且下文进一步详细地描述这些方法。
除了空闲状态的持续时间的预测外,预测器218还可以基于空闲状态持续时间预测来生成可退出低功率状态的预定时间的指示。例如,在一个实施方案中,如果在空闲状态的实例期间将处理器核心11置于休眠状态(即,从其撤除电力和时钟),则功率管理单元20可以基于预测的空闲状态持续时间使该核心在预定时间处退出休眠状态。这种从休眠状态的退出可以在没有以其它方式导致从休眠状态退出的任何其它外部事件(例如,来自外设装置的中断)情况下被调用。此外,从休眠状态的退出可以在空闲状态的预测持续时间完全耗尽之前被调用。如果空闲状态持续时间的预测合理地准确,则从休眠状态的抢先式退出可以得到多种性能优点。例如,可以在从休眠状态退出与恢复活动状态的时间之间执行恢复先前存储的状态,由此使得处理器核心11能够比从休眠状态的反应式退出的情况中所能达到的更快地开始执行指令。
可以将预测器218所做的预测转发到功率管理单元20的决策单元205。在所示的实施方案中,决策单元205可以使用空闲状态时间的预测连同其它信息来确定是否要将空闲的处理器核心11置于低功率状态。此外,决策单元205可以确定要将空闲的处理器核心置于哪种类型的低功率状态。例如,如果预测的空闲持续时间相对较短,则决策单元205可以通过降低提供到处理器核心11的时钟信号的频率、降低提供到处理器核心11的电压或二者兼有来降低功耗。在另一个示例中,如果预测的空闲持续时间足够长以致于使之超过损益平衡点,则决策单元205可以使处理器核心11被置于既不向该核心提供供电也不提供有效时钟信号的休眠状态。响应确定要将处理器核心11置于的功率状态,决策单元205可以向该核心提供功率状态信息(“功率状态”)。从决策单元205接收到更新的功率状态信息的处理器核心11可以执行与进入更新的功率状态关联的多种动作(例如,在更新的功率状态信息指示处理器核心11将进入休眠状态的情况中进行状态保存)。
所示的实施方案中的功率管理单元20包括频率控制单元201和电压控制单元202。频率控制单元201被配置成生成用于调整提供到每个处理器核心11的时钟信号的频率的控制信号。可以将提供到处理器核心11中给定处理器核心的时钟信号的频率独立于提供到其它核心的时钟信号来进行调整。可以将频率控制信号提供到PLL单元4。除了更改时钟信号的频率外,频率控制单元还可以使PLL单元4抑制时钟信号(“时钟门控”)提供到处理器核心11中选定的处理器核心。所示实施方案中的电压控制单元202被配置成生成提供到电压调节器5用于独立地调整每个处理器核心11接收的相应供电电压的控制信号。电压控制信号可以用于降低提供到给定处理器核心11的供电电压,提高提供到该核心的供电电压,或通过抑制该核心接收任何供电电压来关断该核心。频率控制单元201和电压控制单元202可以基于决策单元205提供给它们的信息来生成其相应控制信号。
持续时间数据的分段:
图4包括多个直方图以图示预测单元的各种实施方案使用的分段方法。上文论述的多种硬件实施方案可以利用下文论述的分段方法中任何一种。此外,一些实施方案可以基于如用户输入和工作状况的多种因素来切换分段方法。还要注意,可以部分地或完全地以软件来实现上文论述的各种实施方案的备选,并且因此这些备选可以落在本公开的范围内。
每个图示的实施例的水平轴被划分成覆盖指定持续时间的段。在各种实施方案中,段的间距可以是线性的或对数的。在一些实施方案中,段的间距可以基于如进入低功率状态的先前历史或损益平衡点的因素来动态地进行调整。每个图示的示例的垂直轴表示空闲持续时间的发生计数。由此,每个段中的数据表示落在该特定段所表示的范围内的空闲持续时间的发生计数。
在图4的实施例(A)中,空闲状态持续时间的历史的分布显示段2所表示的范围具有最大的发生次数,而段3具有次最大次数。上文描述的预测单元可以使用(A)中所示的数据来预测下一个空闲状态的持续时间将落在段2表示的范围内。或者,预测单元可以基于(A)中所示的数据来计算平均空闲状态持续时间,并使用该平均值作为基准来预测下一个空闲状态的持续时间。在一些情况中,当执行取均值时,可以忽略计数低于某个阈值的段。例如,在(A)中,如果段0和段4中的计数值低于阈值,则可以忽略它们,并且可以基于段1、2和3中现有的数据来计算均值。
在(B)中,空闲状态时间的分布是双峰。即,段1和3各显示比段0、2和4显著大的计数。在双峰分布的情况中,预测单元可以预测下一个空闲状态持续时间落在与表示较大持续时间的段对应的范围内,在本例中为段3。使用此处所示的实施例,如果进入下一个空闲状态时,其持续时间延伸超出段1所表示的范围,则基于历史分布,可能最终的持续时间将落在段3表示的范围内。一般来说,当出现双峰分布时,预测单元的一个实施方案可以将下一个空闲状态持续时间的预测基于表示较大持续时间范围的段来进行。预测单元的其它实施方案可以在确定双峰分布中两个段的哪一个应该作为预测下一个空闲状态的持续时间的基准时结合另外的因素。
在(C)中,段2具有最高空闲状态持续时间的计数,而段3具有空闲状态持续时间的最快增长计数(由标记“基于增长率的预计增长”的虚线表示)。在一个实施方案中,预测单元可以使用事件存储装置和分段存储装置来确定每个段的增长率。在此类实施方案中,预测可以基于最快增长率的段来预测,在一些实例中具有最快增长率的段不同于具有最大计数值的段。在(C)所示的实施例中,预测单元可以预测下一个空闲状态的持续时间在具有最快增长率的段3而非段2指定的范围内,段2指示较大的总发生计数。以此方式预测下一个空闲状态的持续时间由此可以为最近历史赋予额外权重,并由此提供对变化工作状况的更快速适应。在能够确定具有最快增长计数值的段的实施方案中,预测单元可以实现跟踪每个段中的计数增长(和下降)速率的能力。
在(D)中,仅存在两个段。这两个段被阈值分开,在一些实施方案中阈值可以是静态的,以及在另一些实施方案中可以是动态的。将两个段分开的阈值可以基于用于确定是否进入低功率状态(诸如休眠状态)是否有净获益的能量损益平衡点。使用此分段方法,预测单元可以作出有关下一个空闲状态的持续时间是否将大于分开这两个段的持续时间阈值的二进制预测。此外,预测可以基于哪个段具有较大计数值来进行。在此特定实施例中,段1具有较大计数值,并且由此可以预测下一个空闲状态具有超出阈值的持续时间。
(D)中描述的方法的备选可以结合(C)中描述的方法。即,预测单元可以基于两个段中哪一个是最快增长来作出有关下一个空闲状态持续时间是否将超过阈值的预测。在又一个备选方法中,还可以同时考虑原始计数及其相应增长/下降速率,其中对这些因素之一赋予额外权重。
一般来说,预测单元可以实现基于结果的分段进行预测的各种方法中任何一种。此外,可以按多种方式将这些方法组合,如上文论述的方法(C)和(D)的组合。使用上文论述的多种方法之一,其多种组合或利用本文未论述的分段的其它方法,预测单元可以生成下一个空闲状态的持续时间的预测、近似持续时间或持续时间的范围。功率管理单元可以利用此类预测来确定应该采用哪个功率管理动作,以及确定所采用的功率管理动作的类型。
在一些实施方案中,如果数据的分布不适于得到好的预测,则预测单元可以暂停作出预测。例如,如果空闲状态持续时间的分布相对均匀地位于这些段上,则不太可能使用上文方法之一来得到准确的预测。在此类情况中,预测单元可以暂停作出预测。
如果数据的未来分布与作出准确预测较为相符,则预测单元可以恢复预测。此外,预测单元可以基于数据分布的改变来更改预测所基于的方法。例如,如果在第一时间处数据的分布与(A)中的数据分布相似,并且随着时间推移,转移到如(B)中的双峰分布,则预测单元可以将其预测的方法更改为上文针对双峰分布的预测方法。此外,上文描述的各种实施方案中的预测单元可以被配置成跟踪先前预测的准确度,并且可以基于此来调整其预测方法。
预测方法:
图5-9是图示用于生成下一个空闲状态的持续时间的预测的各种方法的流程图。上文论述的各种装置实施方案可以执行下文论述的每种方法。在一些情况中,下文论述的方法可以部分地或完全地以软件来执行。
图5是图示用于基于平均值预测空闲状态持续时间的方法的一个实施方案的流程图。在所示的实施方案中,方法500开始于存储空闲状态的最近N个间隔的持续时间信息(框505)。所存储的信息可以包含指示最近N个间隔中每个间隔的持续时间的信息。从此信息,可以生成诸如那些上文论述的直方图以指示最近N个间隔的空闲状态持续时间的历史分布。直方图可以包括多个段,其中每个段存储具有落在代表性范围内的持续时间的空闲状态实例的计数。
基于最近N个空闲状态间隔的相应持续时间,可以计算平均持续时间(框510)。计算平均值的方法可以有所变化,并且可以至少部分地基于直方图指示的历史分布。例如,计算平均空闲状态持续时间的一种方法可以包括过滤掉处于极端的持续时间数据,并且集中于分布的中心。
在计算平均持续时间之后,预测单元可以预测下一个空闲状态的持续时间(框515)。在一些情况中,预测可以直接对应于计算的平均值。在另一些情况中,预测可以不直接对应于平均值。例如,预测可以落在给定段的范围中心,即使计算的平均值在同一个段的较上范围。
可以将预测转发到功率管理单元或软件功率管理例行程序。例如,基于硬件的功率管理单元可以利用预测来确定下一个空闲状态的预测持续时间是否足够大以证明进入低功率状态的性能成本是合理的。在进入下一个空闲状态之后,功率管理单元基于使用预测作出的确定可以执行或可以不执行功率管理动作。
在作出预测之后的某个时间处,预测所针对的对应功能单元将进入空闲状态(框520)。可以使用定时器来跟踪空闲状态的持续时间,并且一旦该功能单元退出空闲状态且恢复活动状态,则可以记录最终持续时间值。在记录最近空闲状态的持续时间数据时,可以替换最旧的数据(即,最远的空闲状态的数据)。方法500然后可以返回到框505,存储空闲状态的最近N个实例的持续时间信息。
图6是图示用于基于最快增长段的确定来预测空闲状态持续时间的方法的一个实施方案的流程图。方法600开始于存储空闲状态的最近N个间隔的持续时间信息(框610),并且将空闲状态持续时间数据的计数安排到段中,这些段各覆盖特定持续时间范围(框610)。在将最近N个间隔的空闲状态持续时间数据的计数安排到段中以形成直方图之后,预测单元可以同时基于原始计数数据以及相应段中的计数的历史数据来确定哪个段具有最快增长的计数(框615)。预测单元然后可以基于哪个段具有最快增长的计数来预测下一个空闲状态间隔的持续时间(框620)。在作出预测之后的某个时间点处,预测所针对的功能单元将进入空闲状态(框图625)。在确定功能单元为空闲之后,定时器可以跟踪空闲状态间隔的持续时间。在功能单元重新进入活动状态时,可以记录空闲状态间隔的最终持续时间。然后可以存储刚完成的空闲状态的持续时间,替换最旧的持续时间数据(框630)。然后,该方法返回到框605。
图7是图示用于基于空闲状态持续时间的双峰分布来预测空闲状态持续时间的方法的一个实施方案的流程图。方法700开始于存储空闲状态的最近N个间隔的持续时间信息(框705)。在存储了最近N个间隔的持续时间信息之后,可以如上文先前描述的将该数据安排到段中(框710)。预测单元然后可以检查该数据以确定其分布。如果数据的分布被确定为双峰的(框715,是),则预测单元可以基于较大空闲状态持续时间所对应的段来预测下一个空闲状态的持续时间(框720)。如果分布不是双峰的(框715,否),则可以使用另一种预测方法(框725)。在作出预测之后的时间处,受检的功能单元将进入空闲状态,并且其持续时间可以被记录(框730)。当空闲状态结束时,可以存储记录的持续时间,替换最旧的存储的持续时间数据(框735)。该方法然后可以返回到框705。
图8是图示用于基于阈值分开的段对来预测空闲状态持续时间的方法的一个实施方案的流程图。方法800开始于存储空闲状态的最近N个间隔中每一个的持续时间数据(框805)。在存储了持续时间数据之后,可以基于阈值将其安排到两个单独的段中(框810)。第一段可以包含具有持续时间小于阈值的空闲状态的发生计数,而第二段可以包含具有持续时间高于阈值的空闲状态发生计数。在一个实施方案中,阈值可以是可证明进入低功率状态(例如休眠状态)的能量和性能成本合理时要高于的损益平衡点。在一些实施方案中阈值可以动态地设置,以及在其它实施方案中可以是静态值。在将数据安排到段中之后,就“高于阈值”段的计数是否大于“小于阈值”段作出确定。如果“高于阈值”段的计数较大(框815,是),则预测是下一个空闲状态持续时间将大于损益平衡点,以及功率管理单元由此可以使对应功能单元在空闲状态的下一个间隔期间进入低功率状态(框820)。如果“高于阈值”段的计数小于“小于阈值”段(框815,否),则在空闲状态的下一个间隔期间不进入低功率状态。无论是否进入低功率状态,都跟踪下一个空闲状态的持续时间并在结束时记录下一个空闲状态的持续时间(框830),并且此数据可以替换最旧存储的持续时间数据(框835),此后方法返回到框805。
方法800的多个变化是可能且可设想的。在一个备选实施方案中,可以在预测中将基于两个段计数之差的附加阈值乘以系数。如先前提到的,两个段的计数之和是N。在考虑差值阈值的实施方案中,预测器可以确定段之一的计数值是否比另一个段的计数值超过M,其中M<N。如果“高于阈值”段的计数比“小于阈值”段的计数超过M,该实施方案可以确定在下一个空闲状态期间要进入低功率状态,从而优先于功率节省更强调性能。或者,如果“小于阈值”段的计数比“高于阈值”段超过小于M或实际低于“高于阈值”段,则另一个实施方案可以通过在下一个空闲状态间隔期间要进入低功率状态来优先于性能更强调功率节省。方法800的另一个变化可以结合两个段中哪一个在数量增长的确定。
图9是图示用于使用分段方法来预测IC的功能单元的活动时间的一个方法实施方案的流程图。在所示的实施方案中,方法900开始于存储空闲状态的最近N个间隔的持续时间信息(框905)。此外,方法900还包括存储活动状态的最近N个间隔中每一个的持续时间信息(框910)。然后可以为空闲状态持续时间数据生成第一直方图,以及可以为活动状态持续时间数据生成第二直方图。这可以通过将数据安排在段中,每个段覆盖相应范围来实现(框915),正如先前描述的。预测单元然后可以使用上文论述的多种方法中一种或多种来预测下一个空闲状态的持续时间,并且还可以预测下一个活动状态的持续时间(框920)。预测下一个活动状态持续时间可以使用与上文论述那些类似的一种或多种方法来进行或使用本文未论述的不同方法来进行。
方法900还包括记录下一个空闲状态间隔的持续时间(框925),替换最旧的空闲状态持续时间数据(框930),记录下一个活动状态的持续时间(框935),以及替换最旧活动状态持续时间信息(框940),以及返回到框905。还可以使用上文论述用于记录和存储空闲状态持续时间信息的机制的变化来记录和存储活动状态持续时间信息。
预测活动状态信息对于获得附加功率节省,同时将功率节省与性能需求平衡是有用的。例如,可以使用下一个活动状态的预测持续时间来确定下一个活动状态间隔期间要启用的高速缓存存储器的量。如果预测下一个活动状态间隔为短持续时间的,则可以启用小量的高速缓存,而对于较长预测的活动状态持续时间可以启用较大量的高速缓存。
计算机可访问存储介质:
接下来参考图10,其中示出计算机可访问存储介质400的框图,计算机可访问存储介质400包括表示系统10的数据库405。一般来说,计算机可访问存储介质400可以包括在使用以向计算机提供指令和/或数据期间计算机可访问的任何非瞬时性存储介质。例如,计算机可访问存储介质400可以包括诸如磁介质或光介质的存储介质,例如磁盘(固定磁盘或移动磁盘)、磁带、CD-ROM或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或蓝光。存储介质还可以包括易失性或非易失性存储器介质,诸如RAM(例如,同步动态RAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、Rambus DRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪存存储器、可通过外设接口(诸如通用串行总线(USB)接口等访问的非易失性存储器(例如,闪存存储器)等。存储介质可以包括微机电系统(MEMS),以及可通过通信介质(诸如网络和/或无线链路)访问的存储介质。
一般地,计算机可访问存储介质400上携带的系统10的数据405可以是能够被程序读取并直接或间接用于制造包含系统10的硬件的数据库或其它数据结构。例如,数据库405可以是诸如Verilog或VHDL的高级设计语言(HDL)中硬件功能性的行为级描述或寄存器传输级(RTL)描述。该描述可以被合成工具读取,合成工具可以将描述合成以从合成库生成包含门列表的网表。该网表包含也表示包含系统10的硬件的功能性的一组门。然后可以设置并路由该网表以生成描述要施加到掩膜的几何形状的数据集。然后可以在多种半导体制造步骤中使用这些掩膜来制作与系统10对应的一个或多个半导体电路。或者,计算机可读存储介质400上的数据库405根据需要可以是网表(有或没有合成库)或数据集。
虽然计算机可读存储介质400携带系统10的表示,但是其它实施方案可以根据需要携带系统10的任何部分的表示,包括IC 2、任何代理组(例如,处理节点11、I/O接口13、功率管理单元20等)或代理的部分(例如,活动监视器212、预测器218等)。
一旦完全理解上文的公开内容,多种变化和修改对于本领域那些技术人员将变得明显。所附权利要求意欲解释为涵盖所有此类变化和修改。
Claims (30)
1.一种方法,其包括:
使集成电路(IC)的功能单元在活动状态的间隔与空闲状态的间隔之间循环;
记录针对所述空闲状态的多个间隔的空闲状态持续时间的历史;以及
基于所述空闲状态持续时间的历史来预测所述空闲状态的下一个间隔的持续时间。
2.如权利要求1所述的方法,其还包括将所述空闲状态持续时间的历史细分成多个段,其中将每个段指定为记录特定范围内的空闲状态持续时间实例的计数。
3.如权利要求2所述的方法,其还包括所述多个段存储指示针对所述空闲状态的最近N个间隔的所述空闲状态持续时间的信息。
4.如权利要求3所述的方法,其中所述预测包括计算针对所述空闲状态的所述最近N个间隔的平均持续时间。
5.如权利要求3所述的方法,其中所述预测包括确定所述多个段中哪一个段具有针对所述空闲状态的所述最近N个间隔的最快增长计数。
6.如权利要求3所述的方法,其还包括:
将低于阈值的空闲状态持续时间的实例记录在所述多个段的第一段中;
将高于所述阈值的空闲状态持续时间的实例记录在所述多个段的第二段中;以及
基于所述第一和第二段中哪一个具有其指定范围内较大计数的空闲状态持续时间实例,预测所述空闲状态的所述下一个间隔的持续时间是大于还是小于所述阈值。
7.如权利要求1所述的方法,其还包括基于所述空闲状态持续时间的历史,预测所述活动状态的下一个间隔的持续时间。
8.如权利要求1所述的方法,其还包括基于所述预测下一个空闲状态的持续时间,确定是否要进入低功率状态。
9.如权利要求8所述的方法,其中所述低功率状态是其中从所述功能单元撤除电力的休眠状态。
10.如权利要求9所述的方法,其还包括在进入所述休眠状态之后的预定时间处退出所述休眠状态,其中所述预定时间是基于所述空闲状态的预测持续时间。
11.一种集成电路,其包括;
功能单元,其被配置成在活动状态的间隔与空闲状态的间隔之间循环;以及
预测单元,其被配置成记录针对所述空闲状态的多个间隔的空闲状态持续时间的历史,且还被配置成基于所述空闲状态持续时间的历史来预测所述空闲状态的所述下一个间隔的持续时间。
12.如权利要求11所述的集成电路,其中所述预测单元包括存储单元,所述存储单元被配置成将所述空闲状态持续时间的历史存储在多个段中,其中将每个段指定为记录特定范围内的空闲状态持续时间的计数。
13.如权利要求12所述的集成电路,其中所述存储单元被配置成在所述多个段内存储指示所述空闲状态的最近N个间隔的空闲状态持续时间的信息。
14.如权利要求13所述的集成电路,其中所述预测单元被配置成基于所述空闲状态的所述最近N个间隔的平均持续时间来预测下一个空闲状态的持续时间。
15.如权利要求13所述的集成电路,其中所述预测单元被配置成基于所述多个段中哪一个具有针对所述空闲状态的所述最近N个间隔的最快增长计数来预测所述下一个空闲状态的持续时间。
16.如权利要求13所述的集成电路,其中所述预测单元被配置成:
将低于阈值的空闲状态持续时间的实例记录在所述多个段的第一段中;
将高于所述阈值的空闲状态持续时间的实例记录在所述多个段的第二段中;以及
基于所述第一和第二段中哪一个具有其指定范围内较大计数的空闲状态持续时间实例,预测所述下一个空闲状态的持续时间是大于还是小于所述阈值。
17.如权利要求11所述的集成电路,其中所述预测单元还被配置成基于所述空闲状态持续时间的历史来预测下一个活动状态的持续时间。
18.如权利要求11所述的集成电路,其还包括功率管理单元,所述功率管理单元被配置成基于所述下一个空闲状态的持续时间的预测来确定是否要将所述功能单元置于低功率状态。
19.如权利要求18所述的集成电路,其中所述低功率状态是其中所述功率管理单元从所述功能单元撤除电力的休眠状态。
20.如权利要求19所述的集成电路,其中所述功率管理单元被配置成在进入所述休眠状态之后的预定时间处使所述功能单元退出所述休眠状态,其中所述预定时间是基于所述下一个空闲状态的持续时间的预测。
21.一种系统,其包括:
在芯片上系统(SoC)上实现的多个处理器核心,其中所述多个处理器核心的每一个被配置成在活动状态的间隔与空闲状态的间隔之间循环;以及
在所述SoC上实现的预测单元,且所述预测单元被配置成针对所述多个处理器核心中的每一个,记录空闲状态持续时间的对应历史,且还被配置成基于空闲状态持续时间的其相应历史来预测针对所述多个处理器核心中的每一个的所述空闲状态的下一个间隔的持续时间。
22.如权利要求21所述的系统,其中所述预测单元包括存储单元,所述存储单元被配置成针对所述多个处理器核心中的每一个,将空闲状态持续时间的所述对应历史存储在相应多个段中,其中将每个段指定为记录特定范围内的空闲状态持续时间的计数。
23.如权利要求22所述的系统,其中所述存储单元被配置成在用于每个处理器核心的所述相应多个段内,存储指示针对所述处理器核心的所述空闲状态的最近N个间隔的空闲状态持续时间的信息。
24.如权利要求23所述的系统,其中所述预测单元被配置成针对给定处理器核心,基于针对所述给定处理器核心的所述空闲状态的所述最近N个间隔的平均持续时间来预测其下一个空闲状态的持续时间。
25.如权利要求23所述的系统,其中所述预测单元被配置成针对给定处理器核心,基于用于所述给定处理器核心的所述多个段中哪一个具有针对所述空闲状态的所述最近N个间隔的最快增长计数来预测所述下一个空闲状态的持续时间。
26.如权利要求23所述的系统,其中所述预测单元被配置成:
针对第一处理器核心,将低于阈值的空闲状态持续时间的实例记录在对应多个段的第一段中;
针对所述第一处理器核心,将高于所述阈值的空闲状态持续时间的实例记录在所述对应多个段的第二段中;以及
基于所述对应第一和第二段中哪一个具有其指定范围内较大计数的空闲状态持续时间实例,预测所述第一处理器核心的所述下一个空闲状态的持续时间是大于还是小于所述阈值。
27.如权利要求21所述的系统,其中所述预测单元还被配置成基于针对给定的处理器核心的所述空闲状态持续时间的历史来预测针对所述给定处理器核心的下一个活动状态的持续时间。
28.一种包括由可在计算机系统上执行的程序运行的数据结构的计算机可读存储介质,所述程序运行所述数据结构以执行制造包括由所述数据结构描述的电路的集成电路的过程的一部分,所述数据结构中描述的所述电路包括:
功能单元,所述功能单元被配置成在活动状态的间隔与空闲状态的间隔之间循环;以及
预测单元,所述预测单元被配置成记录针对所述空闲状态的多个间隔的空闲状态持续时间的历史,且还被配置成基于所述空闲状态持续时间的历史来预测所述空闲状态的下一个间隔的持续时间。
29.如权利要求28所述的计算机可读存储介质,其中所述数据结构中描述的所述预测单元包括存储单元,所述存储单元被配置成将所述空闲状态持续时间的历史存储在多个段中,其中将每个段指定为记录特定范围内的空闲状态持续时间的计数。
30.如权利要求28所述的计算机可读存储介质,其中所述数据结构中描述的所述电路包括功率管理单元,所述功率管理单元被配置成基于所述下一个空闲状态的持续时间的预测来确定是否要将所述功能单元置于低功率状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/723,868 US20140181553A1 (en) | 2012-12-21 | 2012-12-21 | Idle Phase Prediction For Integrated Circuits |
US13/723,868 | 2012-12-21 | ||
PCT/US2013/075311 WO2014099741A1 (en) | 2012-12-21 | 2013-12-16 | Idle phase prediction for integrated circuits |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104871114A true CN104871114A (zh) | 2015-08-26 |
Family
ID=50976148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380067714.8A Pending CN104871114A (zh) | 2012-12-21 | 2013-12-16 | 用于集成电路的空闲阶段预测 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20140181553A1 (zh) |
EP (1) | EP2936274A1 (zh) |
JP (1) | JP2016506576A (zh) |
KR (1) | KR20150097713A (zh) |
CN (1) | CN104871114A (zh) |
WO (1) | WO2014099741A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610883A (zh) * | 2015-10-27 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种检测方法及装置 |
CN109643151A (zh) * | 2016-09-22 | 2019-04-16 | 英特尔公司 | 用于降低计算设备功耗的方法和设备 |
CN111240459A (zh) * | 2020-01-08 | 2020-06-05 | 珠海全志科技股份有限公司 | 片上系统功耗管理方法、计算机装置及计算机可读存储介质 |
CN111443888A (zh) * | 2020-03-27 | 2020-07-24 | Tcl华星光电技术有限公司 | 显示控制方法、装置、电子设备及存储介质 |
CN112639674A (zh) * | 2018-08-28 | 2021-04-09 | 超威半导体公司 | 支持功率管理控制的功率管理顾问程序 |
CN112862141A (zh) * | 2019-11-27 | 2021-05-28 | 深圳市万普拉斯科技有限公司 | 基于休眠数据的电量优化方法、装置和计算机设备 |
CN114860320A (zh) * | 2021-01-20 | 2022-08-05 | 西部数据技术公司 | 数据存储设备提早转变到低功率模式 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6175980B2 (ja) * | 2013-08-23 | 2017-08-09 | 富士通株式会社 | Cpuの制御方法、制御プログラム、情報処理装置 |
IN2013KO01167A (zh) * | 2013-10-09 | 2015-04-10 | Lsi Corp | |
US9851777B2 (en) | 2014-01-02 | 2017-12-26 | Advanced Micro Devices, Inc. | Power gating based on cache dirtiness |
US9720487B2 (en) * | 2014-01-10 | 2017-08-01 | Advanced Micro Devices, Inc. | Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration |
US9395788B2 (en) * | 2014-03-28 | 2016-07-19 | Intel Corporation | Power state transition analysis |
US9507410B2 (en) | 2014-06-20 | 2016-11-29 | Advanced Micro Devices, Inc. | Decoupled selective implementation of entry and exit prediction for power gating processor components |
US10620687B2 (en) | 2014-12-22 | 2020-04-14 | Intel Corporation | Hybrid power management approach |
US9829902B2 (en) * | 2014-12-23 | 2017-11-28 | Intel Corporation | Systems and methods for dynamic temporal power steering |
WO2017049592A1 (en) | 2015-09-25 | 2017-03-30 | Intel Corporation | Method and apparatus to improve shared memory efficiency |
CN106095541B (zh) | 2016-05-31 | 2019-11-05 | 深圳市万普拉斯科技有限公司 | 睡眠管理方法及相关装置 |
US10324519B2 (en) | 2016-06-23 | 2019-06-18 | Intel Corporation | Controlling forced idle state operation in a processor |
JP6673083B2 (ja) * | 2016-07-29 | 2020-03-25 | 富士通株式会社 | 並列処理装置、並列処理装置の電源制御プログラム、及び並列処理装置の電源制御方法 |
WO2018128757A2 (en) * | 2016-12-12 | 2018-07-12 | A. O. Smith Corporation | Water filtration system with recirculation to reduce total dissolved solids creep effect |
US20180188797A1 (en) * | 2016-12-29 | 2018-07-05 | Intel Corporation | Link power management scheme based on link's prior history |
US10424107B2 (en) | 2017-04-01 | 2019-09-24 | Intel Corporation | Hierarchical depth buffer back annotaton |
US11010953B2 (en) | 2017-04-21 | 2021-05-18 | Intel Corporation | Dedicated fixed point blending for energy efficiency |
JP2019003588A (ja) * | 2017-06-12 | 2019-01-10 | 正仁 櫨田 | Cpuチップ上のコア・ブロックの1個が動作していなかったり、コア・ブロック内のトランジスターが熱崩壊をして異常な消費電流値を示してコア・ブロックが熱破壊した場合等に、cpuのコア・ブロックの今現在の全部の状態をレジスター群に保存してcpuのコア・ブロック自体へのシステム・クロックの供給や電力供給を停止してcpu自体の発熱や消費電力を抑え、cpuの動作を元の状態に復元してプログラムを再実行する時には、外部割込みに依り、cpuのコア・ブロックにシステム・クロックを再供給してレジスター群から情報を読み込んでcpuの状態を戻して、システム・クロックに従ってプログラム・カウンターの値から、メモリー上のプログラムを再起動する方法。 |
KR102480017B1 (ko) | 2017-08-11 | 2022-12-21 | 삼성전자 주식회사 | 입출력 장치의 성능 및 전력소모를 조절하는 메모리 컨트롤러, 어플리케이션 프로세서 및 메모리 컨트롤러의 동작방법 |
US10178619B1 (en) | 2017-09-29 | 2019-01-08 | Intel Corporation | Advanced graphics power state management |
US10739836B2 (en) * | 2018-03-27 | 2020-08-11 | Intel Corporation | System, apparatus and method for handshaking protocol for low power state transitions |
US11194382B2 (en) * | 2018-10-16 | 2021-12-07 | Advanced Micro Devices, Inc. | Speculative exit from power down mode of a dynamic random access memory rank |
US11455024B2 (en) * | 2019-04-10 | 2022-09-27 | Red Hat, Inc. | Idle state estimation by scheduler |
JP7199329B2 (ja) * | 2019-09-19 | 2023-01-05 | 株式会社東芝 | 制御方法及び半導体集積回路 |
KR20210101632A (ko) | 2020-02-10 | 2021-08-19 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US20200310517A1 (en) * | 2020-05-28 | 2020-10-01 | Intel Corporation | Adaptive lower power state entry and exit |
US11740679B2 (en) | 2020-09-08 | 2023-08-29 | Micron Technology, Inc. | Adaptive sleep transition techniques |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7426684B2 (en) * | 2005-04-29 | 2008-09-16 | Hewlett-Packard Development Company, L.P. | Lost-cycle measurement using cycle counter |
US7386739B2 (en) * | 2005-05-03 | 2008-06-10 | International Business Machines Corporation | Scheduling processor voltages and frequencies based on performance prediction and power constraints |
US8291244B2 (en) * | 2006-07-28 | 2012-10-16 | Arm Limited | Power management in a data processing device having masters and slaves |
US7966506B2 (en) * | 2007-12-12 | 2011-06-21 | Intel Corporation | Saving power in a computer system |
US8219834B2 (en) * | 2009-08-12 | 2012-07-10 | International Business Machines Corporation | Predictive power gating with optional guard mechanism |
US8887171B2 (en) * | 2009-12-28 | 2014-11-11 | Intel Corporation | Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection |
US8839006B2 (en) * | 2010-05-28 | 2014-09-16 | Nvidia Corporation | Power consumption reduction systems and methods |
US20130097415A1 (en) * | 2011-10-12 | 2013-04-18 | Qualcomm Incorporated | Central Processing Unit Monitoring and Management Based On A busy-Idle Histogram |
US9442557B2 (en) * | 2012-11-28 | 2016-09-13 | Advanced Micro Devices, Inc. | Using a linear prediction to configure an idle state of an entity in a computing device |
US9183144B2 (en) * | 2012-12-14 | 2015-11-10 | Intel Corporation | Power gating a portion of a cache memory |
-
2012
- 2012-12-21 US US13/723,868 patent/US20140181553A1/en not_active Abandoned
-
2013
- 2013-12-16 EP EP13865291.2A patent/EP2936274A1/en not_active Withdrawn
- 2013-12-16 CN CN201380067714.8A patent/CN104871114A/zh active Pending
- 2013-12-16 KR KR1020157019328A patent/KR20150097713A/ko not_active Application Discontinuation
- 2013-12-16 WO PCT/US2013/075311 patent/WO2014099741A1/en active Application Filing
- 2013-12-16 JP JP2015549527A patent/JP2016506576A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610883A (zh) * | 2015-10-27 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种检测方法及装置 |
CN106610883B (zh) * | 2015-10-27 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种检测方法及装置 |
CN109643151A (zh) * | 2016-09-22 | 2019-04-16 | 英特尔公司 | 用于降低计算设备功耗的方法和设备 |
CN109643151B (zh) * | 2016-09-22 | 2024-03-08 | 英特尔公司 | 用于降低计算设备功耗的方法和设备 |
CN112639674A (zh) * | 2018-08-28 | 2021-04-09 | 超威半导体公司 | 支持功率管理控制的功率管理顾问程序 |
CN112862141A (zh) * | 2019-11-27 | 2021-05-28 | 深圳市万普拉斯科技有限公司 | 基于休眠数据的电量优化方法、装置和计算机设备 |
CN112862141B (zh) * | 2019-11-27 | 2024-04-16 | 深圳市万普拉斯科技有限公司 | 基于休眠数据的电量优化方法、装置和计算机设备 |
CN111240459A (zh) * | 2020-01-08 | 2020-06-05 | 珠海全志科技股份有限公司 | 片上系统功耗管理方法、计算机装置及计算机可读存储介质 |
CN111443888A (zh) * | 2020-03-27 | 2020-07-24 | Tcl华星光电技术有限公司 | 显示控制方法、装置、电子设备及存储介质 |
CN111443888B (zh) * | 2020-03-27 | 2024-03-22 | Tcl华星光电技术有限公司 | 显示控制方法、装置、电子设备及存储介质 |
CN114860320A (zh) * | 2021-01-20 | 2022-08-05 | 西部数据技术公司 | 数据存储设备提早转变到低功率模式 |
CN114860320B (zh) * | 2021-01-20 | 2024-05-24 | 西部数据技术公司 | 数据存储设备提早转变到低功率模式 |
Also Published As
Publication number | Publication date |
---|---|
US20140181553A1 (en) | 2014-06-26 |
JP2016506576A (ja) | 2016-03-03 |
EP2936274A1 (en) | 2015-10-28 |
WO2014099741A1 (en) | 2014-06-26 |
KR20150097713A (ko) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104871114A (zh) | 用于集成电路的空闲阶段预测 | |
US9110671B2 (en) | Idle phase exit prediction | |
US10671404B2 (en) | Systems, methods and devices for dynamic power management of devices using game theory | |
TWI525547B (zh) | 用以避免無效率核心跳換及提供硬體輔助低功率狀態選擇之機構 | |
US8438416B2 (en) | Function based dynamic power control | |
US8924758B2 (en) | Method for SOC performance and power optimization | |
CN103443737B (zh) | 以低开销获得功率分布图信息 | |
US8510582B2 (en) | Managing current and power in a computing system | |
JP5770300B2 (ja) | 処理ノードの熱制御のための方法および装置 | |
EP3367212B1 (en) | Hardware automatic performance state transitions in system on processor sleep and wake events | |
US9720487B2 (en) | Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration | |
US20130155081A1 (en) | Power management in multiple processor system | |
US20130246820A1 (en) | Method for adaptive performance optimization of the soc | |
US20140237272A1 (en) | Power control for data processor | |
US20130145180A1 (en) | Method of power calculation for performance optimization | |
CN104572497B (zh) | 通过计数逐出进行的动态高速缓存扩大 | |
US20150186160A1 (en) | Configuring processor policies based on predicted durations of active performance states | |
US9342133B2 (en) | Information processing apparatus and power saving control method | |
JP7014778B2 (ja) | 動的信頼性品質モニタリング | |
CN106471433A (zh) | 用于支持到存储器的常通路径的超低功率架构 | |
US20140115365A1 (en) | Electronic device and power management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150826 |