CN103544003A - 基于数据管理功率的设备和方法 - Google Patents

基于数据管理功率的设备和方法 Download PDF

Info

Publication number
CN103544003A
CN103544003A CN201310298097.4A CN201310298097A CN103544003A CN 103544003 A CN103544003 A CN 103544003A CN 201310298097 A CN201310298097 A CN 201310298097A CN 103544003 A CN103544003 A CN 103544003A
Authority
CN
China
Prior art keywords
piece
power
power mode
determining
data
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.)
Granted
Application number
CN201310298097.4A
Other languages
English (en)
Other versions
CN103544003B (zh
Inventor
孙民荣
辛容三
林采石
李承远
李时和
李在敦
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN103544003A publication Critical patent/CN103544003A/zh
Application granted granted Critical
Publication of CN103544003B publication Critical patent/CN103544003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Charge And Discharge Circuits For Batteries Or The Like (AREA)
  • Remote Monitoring And Control Of Power-Distribution Networks (AREA)

Abstract

本发明提供一种基于数据管理功率的设备和方法。所述设备可包括:代码段搜索单元,被构造为搜索插入了功率类型的至少一个代码段;块确定单元,被构造为基于找到的至少一个代码段来确定至少一个块;功率模式控制单元,被构造为控制确定的至少一个块在与功率类型相应的功率模式下操作。

Description

基于数据管理功率的设备和方法
本申请要求于2012年7月16日提交到韩国知识产权局的第10-2012-0077221号韩国专利申请的优先权,该申请的公开通过引用包含于此。
技术领域
一个或多个示例实施例涉及可应用于需要功率管理的领域的基于数据管理移动装置、多媒体装置和嵌入式系统的功率的设备和方法。
背景技术
近来,对于用于在移动装置等上面运行复杂的应用的高速中央处理单元,消费者需求正在增加。
因为这样的需求,系统硬件的资源消耗在增加,从而系统的功耗也在增加。
由于电池寿命被限制并且因此电力容量被限制,这样的功耗的增加会降低移动装置的可用操作时间。
系统级的低功率设计当前使用动态功率管理(DPM)技术和动态电压缩放(DVS)技术。
DPM技术在节能模式下操作空闲装置以降低整个系统的功耗,而在唤醒模式下控制在操作所述相应的装置时发生的功率开销。
为了最小化能量消耗的目的,DVS技术在电压调度器所满意的时间限制条件的范围内控制处理器的操作电压。在通过降低提供给外围装置的电压可获得的能量增益缺乏的情况下,DPM和DVS技术可具有消长关系。具体地讲,从处理器的观点来看,DVS技术可通过降低处理器的处理速率来降低动态功耗。然而,这不仅可增加外围装置的使用的时间段,而且还可增加外围装置的静态功耗。为了降低外围装置的功耗,DPM技术可在节能模式下操作外围装置,同时减少被花费用于激活任务的时间。
发明内容
通过提供一种基于数据管理功率的设备来实现前述和/或其他方面,所述设备包括:代码段搜索单元,被构造为搜索插入了功率类型的至少一个代码段;块确定单元,被构造为基于找到的至少一个代码段来确定至少一个块;功率模式控制单元,被构造为控制确定的至少一个块在与功率类型相应的功率模式下操作。
功率模式控制单元可被构造为将通过确定的至少一个块处理的至少一条数据加载到与功率类型相应的存储器中。
功率模式控制单元可被构造为在与确定的至少一个块相关联的位置添加至少一个新的代码段,以在与功率类型相应的功率模式下操作确定的至少一个块。
功率模式控制单元可被构造为使用确定的至少一个块控制系统时钟在与功率类型相应的功率模式下操作确定的至少一个块。
至少一个代码段可对应于来自用户的描述为功率类型的数据。例如,至少一个代码段可包括变量、数组、函数、自变量和区域的至少一条数据。
块确定单元可被构造为将确定的至少一个块中的由相同功率类型标识并且位于预定距离之内的块确定为超块。
功率模式控制单元可被构造为控制位于超块的开始和结束之间的代码段在相同的功率模式下操作。
块确定单元可被构造为检验找到的至少一个代码段的尺寸是否大于或等于预定阈值,并且当找到的至少一个代码段的尺寸大于或等于预定阈值时,将找到的至少一个代码段确定为确定的至少一个块。
当确定的至少一个块的处理终止时,功率模式控制单元可被构造为从与操作确定的至少一个块的功率类型相应的功率模式改变为先前的功率模式。
功率模式控制单元可被构造为检验确定的块中的每个功率类型的功率类型的数量,并控制确定的块在与检验功率类型的数量中的最大数量的功率类型相应的功率模式下操作。
功率模式控制单元可被构造为检验确定的块中的每个功率类型的数据尺寸,并控制确定的块在与检验的数据尺寸中的最大数据尺寸的功率类型相应的功率模式下操作。
所述设备还可包括:工作负载分析单元,被构造为分析确定的至少一个块的工作负载。
功率模式控制单元可被构造为通过基于分析的工作负载改变功率模式来控制确定的至少一个块。
通过提供一种基于数据管理功率的方法来实现前述和/或其他方面,所述方法包括:代码段搜索单元搜索插入了功率类型的至少一个代码段;块确定单元基于找到的至少一个代码段来确定至少一个块;功率模式控制单元控制确定的至少一个块在与功率类型相应的功率模式下操作,至少一个代码段可对应于来自用户的描述为功率类型的数据。
功率模式控制单元控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤可包括:将通过确定的至少一个块处理的至少一个数据加载到与功率类型相应的存储器中。
功率模式控制单元控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤可包括:在与确定的至少一个块相关联的位置添加至少一个新的代码段,以在与功率类型相应的功率模式下操作确定的至少一个块。
功率模式控制单元控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤可包括:使用确定的至少一个块控制系统时钟在与功率类型相应的功率模式下操作确定的至少一个块。
所述方法还可包括:工作负载分析单元分析确定的至少一个块的工作负载,功率模式控制单元控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤可包括:通过基于分析的工作负载改变功率模式来控制确定的至少一个块。
通过提供一种管理功率的方法来实现前述和/或其他方面。所述方法包括:基于已经插入了代码的块的功率类型来确定代码的块的功率模式;由处理器来基于确定的功率模式控制代码的块的功率。
通过提供一种在装置中管理功率的方法来实现前述和/或其他方面。所述方法包括:将包括功率类型的代码插入代码的块,基于插入的功率类型确定代码的块的功率模式,由处理器基于确定的功率类型控制数据的块的功率。
通过提供一种在装置中管理功率的设备来实现前述和/或其他方面。所述设备包括:多个存储器,每个存储器具有不同的功耗;代码段搜索单元,被构造为从所述装置的代码搜索已经插入了功率类型的至少一个代码段;块确定单元,被构造为确定包括已经插入了功率类型的代码段的代码的块;功率模式控制单元,被构造为基于功率类型确定代码的块的功率模式,并基于确定的功率模式选择性地将至少一条数据加载到多个存储器之中的存储器。
通过提供一种在装置中管理功率的设备来实现前述和/或其他方面。所述设备包括:处理器,控制一个或多个处理器可执行单元;代码段搜索单元,被构造为从所述装置的代码搜索已经插入了功率类型的至少一个代码段;块确定单元,被构造为确定包括已经插入了功率类型的至少一个代码段的代码的块;功率模式控制单元,被构造为检验确定的代码的块中的功率类型的量,并控制确定的代码的块在与具有检验的功率类型的量之中的最大量的功率类型相应的功率模式下操作。
将在接下来的描述中部分阐述实施例另外的方面,还有一部分通过描述将是清楚的,或者可以经过本公开的实施而得知。
附图说明
通过下面结合附图进行的实施例的描述,这些和/或其他方面将会变得清楚并更易于理解,其中:
图1示出基于数据管理功率的设备的示例;
图2示出将功率类型设置到数据的示例;
图3示出基于功率类型确定块的示例;
图4示出基于数据管理功率的设备的另一示例;
图5示出包括基于数据管理功率的设备的系统的示例;
图6示出基于数据管理功率的方法的示例;
图7示出基于数据管理功率的方法的示例,在该方法中,补充了块确定操作。
图8示出在相关功率模式下控制确定的块操作的方法的示例;
图9示出基于工作负载控制功率模式的方法的示例;
图10示出改变功率模式的方法的示例;
图11示出基于功率模式布置存储器的方法的示例;
图12示出基于功率模式输入管理功率的方法的示例。
具体实施方式
现在将详细参考实施例,实施例的示例在附图中示出,其中,相同的标号始终表示相同的元件。下面通过参考附图描述实施例以解释本公开。
图1示出基于数据管理功率的设备100的示例。
根据实施例的基于数据管理功率的设备100可在装置之内使用功率类型管理该装置的功率。
例如,设备100可通过使用功率类型控制系统时钟来管理功率。
即,设备100可定义与功率模式(例如,低功率、中功率、高功率、或一般功率)相应的功率类型,并且可全部代码中搜索插入了定义的功率类型的代码段。
至少一个代码段可以被解释为在全部代码中定义的变量、数组、函数、自变量、区域中的至少一个的至少一条数据。
设备100可将与找到的代码段相关联的代码的区域定义为块,并且可在相应的功率模式下控制块操作。
设备100可通过检验相应块的工作负载,通过基于检验的工作负载计算权重值,并通过基于计算的权重值改变时钟,来控制功率。
因此,根据实施例的基于数据管理功率的设备100可通过功率管理实现低功率系统。
根据实施例的基于数据管理功率的设备100可以以程序员最小的付出自动化功率管理区域的确定和管理,从而功率管理区域对于编程误差来说可以是细密无懈可击的。
因此,设备100可例如包括代码段搜索单元110、块确定单元120和功率模式控制单元130。
代码段搜索单元110可从全部代码中搜索或检测插入了功率类型的至少一个代码段。
图2示出为数据(例如,块)设置功率类型的示例。
如在图2中所示,功率类型可被预先定义在全部代码之中的对应于数据的区域中。
即,通过将“_lp_”插入通过整数定义的变量“a”,功率模式可被定义为在低功率模式下操作变量“a”,如在与标号201相应的虚线框中所示。
如在与标号202相应的虚线框中所示,通过将“_mp_”插入通过字符定义的数组b[10],功率模式可被定义为在中功率模式下操作数组b[10]。
如在与标号203相应的虚线框中所示,通过将“_hp_”插入函数“ISR0”,功率模式可被定义为在高功率模式下操作函数“ISR0”。
如在与标号204相应的虚线框中所示,通过将“_gp_”插入函数“decode”的自变量“inputData”,功率模式可被定义为在一般功率模式下操作函数“decode”。
如在与标号205相应的虚线框中所示,通过将“_lp_”插入预定区域,功率模式可被定义为在低功率模式下操作预定区域。
传统地,代码被认为是功率管理的必要部分。即,代码的部分被设置为低功率区域并被管理。
相反,根据示例的基于数据管理功率的设备100可将数据(而非代码)当作功率管理的核心。即,设备100可通过插入功率类型来将功率模式设置到数据,并可在数据的处理期间在与插入的功率类型相应的功率模式下操作算数单元进行操作。
因此,使用相应数据的区域可被搜索到并被当作功率管理区域,并且可也被管理。
可通过采用新的数据类型或通过将功率类型插入现有的数据类型来实现为数据处理设置功率模式的方法。
在图2中,分别表示低功率、中功率、高功率、一般功率的功率类型“_lp_”、“_mp_”、“_hp_”、“_gp_”可被插入现有的数据类型。
功率模式的描述可包括存储器、函数代码、代码段、硬件加速器(HWA)指令、内联函数(intrinsic)、自变量,并且可根据功率类型而改变。
以下,已经插入了功率类型的数据被定义为功率数据。
功率类型可被解释为功率模式的类型。即,功率类型可按一对一的关系与功率模式对应。
参照图1,代码段搜索单元110可在全部代码中搜索或检测已经插入了功率类型(例如,“_lp_”、“_mp_”、“_hp_”、“_gp_”)的至少一个代码段。
块确定单元120可基于至少一个检测或找到的代码段确定至少一个块。
块确定单元120可检验所述找到的至少一个代码段的尺寸是否大于或等于预定阈值,当所述找到的至少一个代码段的尺寸大于或等于预定阈值时,块确定单元120可将所述找到的至少一个代码段确定为所述至少一个块。
即,当块过小时,块确定单元120可不能将相应的区域确定为块,这是因为当块小于预定阈值时,通过改变功率模式通过低功率实现可获得的增益被判断为无意义。
参照图3详细描述代码段和至少一个块。
图3示出基于功率类型确定块的示例。
在图3中,可基于插入了功率类型的数据(即,功率数据)来确定块。
使用功率数据的指令可被确定为块。
根据示例的基于数据管理功率的设备100可将使用数据的循环、控制块和函数确定为至少一个块。
在图3中,当在函数“SpinLock”中被定义为低功率整数“_lp_int”的“i”满足预定条件“uipLock==LOCKED”时,“for”循环可被解释为代码段,用于操作“for”循环的各个“while”语句可被确定为块。
此外,设备100可将函数“SpinLock”确定为块。
此外,设备100可将多个块的集合确定为块,并可将这样的块定义为超块(super block)。
即,块确定单元120可将确定的至少一个块之中的位于预定距离之内并且以相同功率类型标识的块确定为超块。
当将在全部代码中以过长的距离隔开的不同块确定为在相同的超块中时,会难以实现低功率系统。
因此,块确定单元120可仅将确定的块中的在全部代码中位于预定距离之内的块确定为超块。
在图3中,当包括功率模式的函数“SpinLock”是连续的时,该函数可被确定为超块302以激活集成功率管理。
功率模式控制单元130可控制位于超块的开始和结束之间的代码段在相同的功率模式下操作。
因此,在实施例中,功率模式控制单元130可控制位于构成超块的块之间并且以与超块不同的功率模式操作的代码段在与超块相同的功率模式下操作,从而避免功率模式的频繁改变并启动集成功率模式。
因此,根据示例的基于数据管理功率的设备100可减少由于各种类型的超块的实现而导致的不必要的功率管理成本。
参照图1,功率模式控制单元130可控制确定的至少一个块在与功率类型相应的功率模式下操作。
功率模式控制单元130可将由确定的至少一个块处理的至少一条数据加载到与功率类型相应的存储器中。
系统可包括多个存储器,每个存储器在功耗方面具有差异。
例如,低功率存储器可包括使用触发器(flip-flop)存储器单元的随机存取存储器(RAM),特别是只要供电就以静态形式保持数据的静态RAM(SRAM)。
高功率存储器可包括动态RAM(DRAM),由于DRAM的简单结构和容易集成,DRAM被用作高容量短期存储器。由于存储的信息随时间消失,因此DRAM需要周期性刷新。
功率模式控制单元130可基于功率类型将至少一条数据加载到不同功耗的多个存储器中的相应存储器中。
功率模式控制单元130可在与确定的至少一个块相关联的位置添加至少一个新的代码段,来在与功率类型相应的功率模式下操作所述确定的至少一个块。
例如,功率模式控制单元130可通过在确定的至少一个块的开始之前插入初构程序代码(prolog code)并在确定的至少一个块的结束之后插入终解程序代码(epilog code),来控制确定的至少一个块在与功率类型相应的功率模式下操作。
功率模式控制单元130可使用确定的至少一个块控制系统时钟,以在与功率类型相应的功率模式下操作确定的至少一个块。
可存在不同功耗的多个存储器,与这些存储器相关联,中央处理单元(CPU)、直接存储器访问(DMA)单元和HWA可被操作。
这些单元可作为系统时钟操作,功率模式控制单元130可使用确定的至少一个块控制系统时钟,以在与功率类型相应的功率模式下操作确定的至少一个块。
当确定的至少一个块的处理终止时,功率模式控制单元130可从与功率类型相应的功率模式改变到先前的功率模式。
在功率模式控制单元130在预定功率模式下控制块之后,功率模式控制单元130可从对块进行操作的预定功率模式改变到先前的功率模式。
功率模式控制单元130可检验在确定的块中存在的每个不同种类的功率类型的数量或量,并可控制确定的块在具有检验的不同种类的功率类型的数量之中的最大量的功率类型所对应的功率模式下操作。
即,当在一个块中存在多个功率类型时,功率模式控制单元130可控制相应块在与在该块中具有最大量的功率类型相应的功率模式下操作,从而避免由于频繁改变功率模式导致的额外功耗。
功率模式控制单元130可检验确定的块中的每个功率类型的数据尺寸,并可控制确定的块在与检验的数据尺寸之中的最大数据尺寸的功率类型相应的功率模式下操作。
即,当在一个块中存在多个功率类型时,功率模式控制单元130可控制相应块在以最大尺寸定义的数据所对应的功率模式下操作,从而避免由于频繁改变功率模式导致的额外功耗。
作为示例,当以整数形式定义的数据“i”表示低功率模式,以数组形式定义的数据“a”表示高功率模式时,可通常判断整数的数据比数组的数据具有更大的尺寸。
即,功率模式控制单元130可控制相应块在高功率模式下操作。
图4示出基于数据管理功率的设备400的另一示例。
根据另一示例的基于数据管理功率的设备400还可包括基于块的工作负载确定块的功率模式。因此,设备400可启动精确功率管理。
参照图4,设备400可例如包括代码段搜索单元410、块确定单元420、功率模式控制单元430、工作负载分析单元440。
代码段搜索单元410可从全部代码中搜索已经插入了功率类型的至少一个代码段。
块确定单元420可基于找到的至少一个代码段确定至少一个块。
块确定单元420可检验找到的至少一个代码段的尺寸是否大于或等于预定阈值,当找到的至少一个代码段的尺寸大于或等于预定阈值时,块确定单元420可将找到的至少一个代码段确定为至少一个块。即,如果找到的至少一个代码段的尺寸大于或等于预定阈值,则块确定单元420可将找到的至少一个代码段确定为块。
即,当块过于小时,块确定单元420可不能将相应区域确定为块,这是因为通过改变功率模式通过低功率实现可获得的增益被判断为无意义。即,如果由于预定阈值被设置得太低从而将太多小的找到的代码段确定为块而导致功率模式被过于频繁地改变,则将不能实现充分的节能。
功率模式控制单元430可控制确定的至少一个块在与功率类型相应的功率模式下操作。
功率模式控制单元430可将通过确定的至少一个块处理的至少一条数据加载到与功率类型相应的存储器中。
功率模式控制单元430可基于功率模式将至少一条数据加载到每个具有不同功耗的多个存储器中的相应存储器中。
功率模式控制单元430可在与确定的至少一个块相关联的位置添加至少一个新的代码段,来在与确定的至少一个块相关联的功率类型所对应的功率模式下操作所述确定的至少一个块。
例如,功率模式控制单元430可通过在确定的至少一个块的开始之前插入初构程序代码(prolog code)并在确定的至少一个块的结束之后插入终解程序代码(epilog code),来控制确定的至少一个块在与功率类型相应的功率模式下操作。
功率模式控制单元430可使用确定的至少一个块控制系统时钟,以在与功率类型相应的功率模式下操作确定的至少一个块。
这些算数单元可作为系统时钟操作,功率模式控制单元430可使用确定的至少一个块控制系统时钟,以在与功率类型相应的功率模式下操作确定的至少一个块。
当确定的至少一个块的处理终止时,功率模式控制单元430可从与功率类型相应的功率模式改变到先前的功率模式。
功率模式控制单元430可检验在确定的块中的功率类型的量,并可控制确定的块在具有检验的功率类型的量之中的最大量的功率类型所对应的功率模式下操作。
功率模式控制单元430可检验确定的块中的每个功率类型的数据尺寸,并可控制确定的块在与检验的数据尺寸之中的最大数据尺寸的功率类型相应的功率模式下操作。
即,当在一个块中存在多个功率类型时,功率模式控制单元430可控制相应块在以最大尺寸定义的数据所对应的功率模式下操作,从而避免频繁改变功率模式导致的额外功耗。
工作负载分析单元440可分析确定的至少一个块的工作负载。
例如,工作负载分析单元440可检验确定的块的功率类型,并可检验确定的块的当前工作负载。
工作负载分析单元440可通过基于分析的工作负载改变功率模式来控制确定的至少一个块的处理。
即,工作负载分析单元440可通过检验确定的块的功率类型来检验功率模式,并可检验确定的块的当前工作负载。
工作负载分析单元440可通过检验的工作负载来计算权重值,并可通过将计算的权重值应用到功率模式来计算系统时钟的改变。
此外,工作负载分析单元440可基于计算的系统时钟的改变通过时钟发生器改变系统时钟。
例如,工作负载分析单元可检验由每个存储器的功耗定义的工作负载,基于检验的工作负载计算与低功率存储器、中功率存储器和高功率存储器中的任意一个相应的权重值,并计算将计算的权重值应用到时钟的改变。
因此,通过控制终端中的元件(例如,CPU等)的功耗,可将系统400实现为低功率系统。
图5示出包括基于数据管理功率的设备的系统500的示例。
根据示例的系统500可例如包括管理功率的设备510、时钟发生器520、CPU530、DMA单元540、HWA550、低功率(LP)存储器560、中功率(MP)存储器570、高功率(HP)存储器580。
不同功耗的多个存储器(例如,LP存储器560、MP存储器570、HP存储器580)可存在于系统500中。
算数单元(例如,CPU530、DMA单元540、HWA550)可访问LP存储器560、MP存储器570、HP存储器580之一,以下载和上传数据。
为了执行这些操作,算数单元(例如,CPU530、DMA单元540、HWA550)可从时钟发生器520接收时钟的输入。
在该示例中,时钟发生器520可通过管理功率的设备510被管理。
即,管理功率的设备510可基于插入数据的功率类型来检验相应块的功率模式。
因此,管理功率的设备510可通过基于检验的功率模式控制时钟发生器520来实现低功率系统。
作为示例,LP存储器560、MP存储器570、HP存储器580可分别被解释为SRAM、非易失性RAM(NVRAM)、DRAM。
取决于刷新率,即使相同的DRAM可消耗不同量的功率。管理功率的设备510可管理控制元件来控制存储器和算术单元,以根据功率模式执行不同操作。
图6示出基于数据管理功率的方法的示例。
根据示例的基于数据管理功率的方法可以以程序员最小的付出自动化功率管理区域的确定和管理,从而功率管理区域对于编程误差来说可以是细密无懈可击的。
参照图6,在操作601,该方法可搜索已经插入功率类型的至少一个代码段。
例如,至少一个代码段可以被解释为变量、数组、函数、自变量、区域中至少一个的至少一条数据。
在操作602,该方法可基于找到的至少一个代码段确定至少一个块。
在操作603,该方法可控制确定的至少一个块在与功率类型相应的功率模式下操作。
图7示出基于数据管理功率的方法的示例,在该方法中,补充了块确定操作。
参照图7,在操作701,该方法可在全部代码中搜索已经插入功率类型的至少一个代码段。
例如,通过将“_lp_”插入通过整数定义的变量“a”的数据,功率模式可被定义为在低功率模式下操作变量“a”。
因此,该方法可在全部代码中检验插入变量“a”的数据中的功率类型,并可搜索已经插入了功率类型的至少一个代码段。
在操作702,该方法可基于找到的至少一个代码段来确定至少一个块。
例如,该方法可将使用数据的循环、控制块和函数确定为至少一个块。
在操作703,当多个块被确定时,该方法可从确定的块确定超块。
该方法可通过将找到的块中的相邻块分为组来确定超块。
超块可被解释为另外的块。
例如,当通过将初始找到的十个块中的五个块分为组来确定超块时,该方法可将确定的超块和剩余的五个块识别并处理为一个块。即,该方法可通过确定超块并将超块当作单个块,来将初始找到的十个块识别并处理为六个块。
在操作704,该方法可从包括超块的多个块之中排除具有小于或等于预定尺寸的尺寸的块。
可在编译全部代码期间确定块。
该方法可在所有代码中搜索使用插入了功率类型的功率数据的区域,并可确定块。
在确定的多个块之中,可确定超块,在该示例中,该方法可检验确定的块是否满足预定条件。
即,具有小的尺寸的块可从用于功率管理的对象排除。
因此,功率模式可仅被设置到剩余的块。
在操作705,该方法可确定没有从用于功率管理的对象排除的剩余块的功率模式。
作为示例,该方法可检验没有从用于功率管理的对象排除的剩余块的功率模式的类型,并可检验每个检验的类型的块的数量。
该方法可将没有从用于功率管理的对象排除的剩余块的功率模式确定为与最大量的块相应的类型的功率模式。
当在低功率模式下操作的最大量的块存在于没有从用于功率管理的对象排除的剩余块中时,该方法可将没有从用于功率管理的对象排除的剩余块的功率模式确定为低功率模式。即,在一个实施例中,如果超块包括10个块,其中的五个被确定为在低功率模式下操作,其中的三个被确定为在中功率模式下操作,其中的两个被确定为在一般功率模式下操作,则该方法可将超块的全部十个块的功率模式确定为低功率模式。
作为另一示例,该方法可检验所述块的尺寸,并且将所述块的功率模式确定为具有最大尺寸的块的功率模式。
在操作706,该方法可添加至少一个新的代码段,以在确定的功率模式下操作。
该方法可针对每个块在相应块之前或之后插入用于设置功率模式的代码。
即,该方法可在与确定的至少一个块相关联的位置添加至少一个新的代码段,以在与功率类型相应的功率模式下操作确定的至少一个块。
在该示例中,该方法可通过在超块的开始之前插入初构程序代码并在超块的结束之后插入终解程序代码,来控制超块在确定的功率模式下操作。
图8示出在相关功率模式下控制确定的块操作的方法的示例。
参照图8,在操作801,该方法可检验确定的块中的每个功率类型的数据的尺寸。
可将多个功率类型插入到一个块中。
例如,多个数据(例如,“_lp_int”、“_hp_char a[10]”)可被定义在函数“SpinLock”中,单独的功率类型可被插入到每个数据中。因此,多个功率类型可被包括在函数“SpinLock”中。
该方法可检验函数“SpinLock”之内插入功率类型的数据的大小。
在操作802,该方法可确定插入具有检验的尺寸之中的最大尺寸的数据的功率类型。
在操作803,该方法可控制确定的块在与确定的功率类型相应的功率模式下操作。
图9示出基于工作负载控制功率模式的方法的示例。
该方法可分析确定的至少一个块的工作负载,并且可通过基于分析的工作负载改变功率模式来控制确定的至少一个块。
参照图9,在操作901,该方法可检验确定的块的功率模式。
该方法可检验确定的块中的每个不同种类的功率类型的数量或量,并可检验与具有检验的不同种类的功率类型的数量之中的最大量的功率类型相应的功率模式。
即,当在一个块中存在多个种类的功率类型时,该方法可控制相应块在与具有最大量的功率类型的种类相应的功率模式下操作,从而避免由于功率模式的频繁改变导致的额外功耗。
可选择地,该方法可控制相应块在与以最大尺寸定义的数据相应的功率模式下操作,从而可避免由于功率模式的频繁改变导致的额外功率。
在操作902,该方法可获得确定的块的工作负载。
工作负载可对应于分配给确定的块的工作量。
在操作903,该方法可产生与获得的工作负载相应的权重值。
例如,为了提高具有高工作负载的块的处理效率,可为具有低工作负载的块产生高权重值。
在操作904,该方法可基于功率模式和产生的权重值来控制用于控制确定的块的系统时钟。
该方法可检验确定的块的工作负载,可基于检验的工作负载计算权重值,并可基于计算的权重值改变系统时钟,以有效地控制系统的功率。
图10示出改变功率模式的方法的示例。
参照图10,在操作1001,该方法可将关于当前功率模式的信息存储在栈中。
例如,功率模式可被保持在栈类型的数据结构中。
由于功率模式可连续改变,因此当前功率模式可通过后进先出(LIFO)方法被加载到栈中或者从栈被下载。
当改变当前功率模式时,该方法可将当前功率模式存储在功率模式栈中,并且将块的功率模式设置为当前功率模式。
在操作1002,该方法可控制确定的块的功率模式,并且可操作块。
在操作1003,当块的操作终止时,该方法可读取存储在栈中的关于当前功率模式的信息。
当改变当前功率模式时,该方法可将当前功率模式存储在功率模式栈中,并可将块的功率模式设置为当前功率模式。
该方法可操作相应块,当操作终止时,可从栈下载先前的功率模式,并可随后将先前的功率模式设置为当前功率模式。
该方法可管理用于栈上传和下载功率模式的任务,并可在上下文切换(context switching)期间执行任务管理。
在操作1004,该方法可基于读取的关于当前功率模式的信息改变当前功率模式。
图11示出基于功率模式布置存储器的方法的示例。
图11示出对用于将包括功率类型的功率数据放置到存储器中的处理进行示出的流程图。
在操作1101,该方法可检验插入代码段的功率类型。
该方法可基于检验的功率类型将数据存储在相应存储器中。
在操作1102,该方法可基于检验的功率类型来检验数据是否对应于低功率数据。
在操作1103,当数据对应于低功率数据时,该方法可将数据存储在LP存储器中。
在操作1104,当数据不对应于低功率模式时,该方法可检验数据是否对应于高功率数据。
在操作1105,当数据对应于高功率数据时,该方法可将数据存储在HP存储器中。
在操作1106,当数据不对应于低功率数据或高功率数据时,该方法可将数据存储在MP存储器中。
即,可通过基于功率类型确定的功率模式来改变存储数据的存储器的位置。
图12示出基于功率模式输入管理功率的方法的示例。
参照图12,在操作1201,该方法可检验插入代码段的数据的自变量的功率类型。
该方法可基于检验的自变量的功率类型来设置数据处理模式。
基于检验的自变量,可在运行时间期间而非编译期间设置功率模式。即,当功率类型用作函数的自变量时,该方法可根据针对相同代码的输入值来不同地管理功率。
在操作1202,该方法可基于检验的功率类型来检验数据的自变量是否对应于低功率数据。
在操作1203,当数据的自变量对应于低功率数据时,该方法可将系统设置为在低功率模式下处理数据。
在操作1204,当数据的自变量不对应于低功率数据时,该方法可检验数据的自变量是否对应于高功率数据。
在操作1205,当数据的自变量对应于高功率数据时,该方法可将系统设置为在高功率模式下处理数据。
在操作1206,当数据的自变量不对应于低功率数据或高功率数据时,该方法可将系统设置为在中功率模式下处理数据。
因此,根据示例的基于数据管理功率的方法可简化低功率编程并能够进行动态功率管理,以提高由于电池可用时间的增加导致的移动装置的可用性。
根据上述实施例的方法可被记录在包括程序指令的非暂时计算机可读介质中,以实现由计算机实现的各种操作。介质还可单独包括程序指令、数据文件、数据结构等或程序指令、数据文件、数据结构等的组合。非暂时计算机可读介质的示例包括磁介质(例如,硬盘、软盘、磁带);光介质(例如,CD ROM盘和DVD);磁光介质(例如,光盘);专门配置为存储和执行程序指令的硬件装置(例如,只读存储器(ROM)、RAM、闪存等)。
程序指令的示例包括机器代码(例如,由编译器产生的)和包含可由计算机使用解释器执行的高级代码的文件这二者。描述的硬件装置可被构造为用作一个或多个软件模块,以执行上述实施例的操作,反之亦然。这里描述的软件模块的一个或多个可由只有那个单元才有的控制器(例如,专用处理器)或一个或多个模块共有的处理器执行。描述的方法可在通用计算机或处理器上执行,或者可在特定机器(例如,这里描述的设备)上执行。
在前述公开中,当在元素的列之后时,诸如“…中的至少一个”的表述可被解释为修饰或参照该表述跟随的元素的整个列。
尽管已经显示和描述了实施例,但是本领域的技术人员将理解,在不脱离本公开的原理和精神的情况下,可在这些实施例中进行改变,其中,本公开的范围由权利要求及其等同物所限定。

Claims (20)

1.一种基于数据管理功率的设备,所述设备包括:
代码段搜索单元,被构造为检测已经插入了功率类型的至少一个代码段;
块确定单元,被构造为基于检测的至少一个代码段来确定至少一个块;
功率模式控制单元,被构造为控制确定的至少一个块在与功率类型相应的功率模式下操作。
2.如权利要求1所述的设备,其中,功率模式控制单元被构造为将通过确定的至少一个块处理的至少一个数据加载到多个存储器中的与功率类型相应的存储器中。
3.如权利要求1所述的设备,其中,功率模式控制单元被构造为在与确定的至少一个块相关联的位置添加至少一个新的代码段,以在与功率类型相应的功率模式下操作确定的至少一个块。
4.如权利要求1所述的设备,其中,功率模式控制单元被构造为使用确定的至少一个块控制系统时钟在与功率类型相应的功率模式下操作确定的至少一个块。
5.如权利要求1所述的设备,其中,至少一个代码段对应于描述为功率类型的数据。
6.如权利要求1所述的设备,其中,块确定单元被构造为将确定的至少一个块中的由相同功率类型标识并且位于预定距离之内的块确定为超块。
7.如权利要求6所述的设备,其中,功率模式控制单元被构造为控制位于超块的开始和结束之间的代码段在相同的功率模式下操作。
8.如权利要求1所述的设备,其中,块确定单元被构造为检验检测的至少一个代码段的尺寸是否大于或等于预定阈值,并且当检测的至少一个代码段的尺寸大于或等于预定阈值时,将检测的至少一个代码段确定为确定的至少一个块。
9.如权利要求1所述的设备,其中,当确定的至少一个块的处理终止时,功率模式控制单元被构造为从与操作确定的至少一个块的功率类型相应的功率模式改变为先前的功率模式。
10.如权利要求1所述的设备,其中,功率模式控制单元被构造为检验确定的块中的每个不同种类的功率类型的数量,并控制确定的块在与具有检验的不同种类的功率类型的数量中的最大数量的功率类型相应的功率模式下操作。
11.如权利要求1所述的设备,其中,功率模式控制单元被构造为检验确定的块中的每个功率类型的数据尺寸,并控制确定的块在与具有检验的数据尺寸中的最大数据尺寸的功率类型相应的功率模式下操作。
12.如权利要求1所述的设备,还包括:
工作负载分析单元,被构造为分析确定的至少一个块的工作负载。
13.如权利要求12所述的设备,其中,功率模式控制单元被构造为通过基于分析的工作负载改变功率模式来控制确定的至少一个块。
14.一种基于数据管理功率的方法,所述方法包括:
检测已经插入了功率类型的至少一个代码段;
基于检测的至少一个代码段来确定至少一个块;
控制确定的至少一个块在与功率类型相应的功率模式下操作。
15.如权利要求14所述的方法,其中,控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤包括:将通过确定的至少一个块处理的至少一个数据加载到多个存储器中的与功率类型相应的存储器中。
16.如权利要求14所述的方法,其中,控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤包括:在与确定的至少一个块相关联的位置添加至少一个新的代码段,以在与功率类型相应的功率模式下操作确定的至少一个块。
17.如权利要求14所述的方法,其中,控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤包括:使用确定的至少一个块控制系统时钟在与功率类型相应的功率模式下操作确定的至少一个块。
18.如权利要求14所述的方法,还包括:
分析确定的至少一个块的工作负载,
其中,控制确定的至少一个块在与功率类型相应的功率模式下操作的步骤包括:通过基于分析的工作负载改变功率模式来控制确定的至少一个块。
19.如权利要求14所述的方法,其中,至少一个代码段包括变量、数组、函数、自变量和区域中的至少一个的至少一条数据。
20.一种管理功率的方法,所述方法包括:
基于已经插入了代码的块的功率类型来确定代码的块的功率模式;
基于确定的功率模式控制代码的块的功率。
CN201310298097.4A 2012-07-16 2013-07-16 基于数据管理功率的设备和方法 Active CN103544003B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120077221A KR101959252B1 (ko) 2012-07-16 2012-07-16 데이터를 기반으로 전력을 관리하는 장치 및 방법
KR10-2012-0077221 2012-07-16

Publications (2)

Publication Number Publication Date
CN103544003A true CN103544003A (zh) 2014-01-29
CN103544003B CN103544003B (zh) 2018-09-21

Family

ID=48874781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310298097.4A Active CN103544003B (zh) 2012-07-16 2013-07-16 基于数据管理功率的设备和方法

Country Status (5)

Country Link
US (1) US9501114B2 (zh)
EP (1) EP2687944B1 (zh)
JP (1) JP6186196B2 (zh)
KR (1) KR101959252B1 (zh)
CN (1) CN103544003B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102063716B1 (ko) * 2013-05-14 2020-02-11 삼성전자주식회사 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법
KR102248787B1 (ko) 2014-08-28 2021-05-06 삼성전자 주식회사 Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
EP3121714B1 (en) * 2015-07-23 2018-02-21 Karlsruher Institut für Technologie Computer system and method for multi-processor communication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014742A1 (en) * 2001-07-09 2003-01-16 Sasken Communication Technologies Limited Technique for compiling computer code to reduce energy consumption while executing the code
CN1435755A (zh) * 2002-01-30 2003-08-13 松下电器产业株式会社 指令变换装置和变换方法
CN1613055A (zh) * 2002-01-02 2005-05-04 英特尔公司 基于功率估算的指令调度
US20070300214A1 (en) * 2006-06-23 2007-12-27 Rong-Guey Chang Power-aware compiling method
US20110093726A1 (en) * 2009-10-15 2011-04-21 Microsoft Corporation Memory Object Relocation for Power Savings

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0616304B2 (ja) 1984-12-28 1994-03-02 株式会社東芝 低消費電力時におけるcpuの機能代替方法
US6967728B1 (en) * 1999-07-23 2005-11-22 Electronics For Imaging, Inc. Reusable and transferable printer driver preference system
US6990594B2 (en) 2001-05-02 2006-01-24 Portalplayer, Inc. Dynamic power management of devices in computer system by selecting clock generator output based on a current state and programmable policies
US7224756B2 (en) 2001-08-01 2007-05-29 Cirrus Logic, Inc. Method and system for providing a codec clock signal at a desired operational rate
JP2003296123A (ja) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ
JP2004199139A (ja) 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
JP2004318502A (ja) 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd 電力制御機能を備えたマイクロプロセッサ及び命令変換装置
JP2004326153A (ja) 2003-04-21 2004-11-18 Canon Inc 消費電力低減装置
JP2005038186A (ja) * 2003-07-15 2005-02-10 Matsushita Electric Ind Co Ltd 情報処理装置
CN1829952A (zh) 2003-07-30 2006-09-06 皇家飞利浦电子股份有限公司 嵌入式部件的灵活功率降低
US7392099B2 (en) 2003-12-12 2008-06-24 Hewlett-Packard Development Company, L.P. System and method for power management when an operating voltage is between two thresholds
KR20050100441A (ko) 2004-04-14 2005-10-19 엠큐브웍스(주) 무선 단말기의 전력 관리를 위한 아이들 제어 방법
KR101016579B1 (ko) 2006-09-30 2011-02-22 삼성전자주식회사 통신 시스템에서 전력 제어 방법 및 시스템
JP2008234270A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd 情報処理装置および情報処理装置の制御方法
EP2075696A3 (en) 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
JP2011134288A (ja) * 2009-01-19 2011-07-07 Fujitsu Ltd コード生成装置及びコード生成方法
JP2011170709A (ja) 2010-02-19 2011-09-01 Ricoh Co Ltd ネットワーク制御装置、画像形成装置、画像形成システム、省エネ制御方法、及び省エネ制御プログラム
JP2011129147A (ja) 2011-01-31 2011-06-30 Panasonic Corp プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
US8185758B2 (en) 2011-06-30 2012-05-22 Intel Corporation Method and system for determining an energy-efficient operating point of a platform

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014742A1 (en) * 2001-07-09 2003-01-16 Sasken Communication Technologies Limited Technique for compiling computer code to reduce energy consumption while executing the code
CN1613055A (zh) * 2002-01-02 2005-05-04 英特尔公司 基于功率估算的指令调度
CN1435755A (zh) * 2002-01-30 2003-08-13 松下电器产业株式会社 指令变换装置和变换方法
US20070300214A1 (en) * 2006-06-23 2007-12-27 Rong-Guey Chang Power-aware compiling method
US20110093726A1 (en) * 2009-10-15 2011-04-21 Microsoft Corporation Memory Object Relocation for Power Savings

Also Published As

Publication number Publication date
KR20140010671A (ko) 2014-01-27
EP2687944A3 (en) 2014-12-03
US9501114B2 (en) 2016-11-22
JP2014021984A (ja) 2014-02-03
EP2687944B1 (en) 2017-11-22
US20140019782A1 (en) 2014-01-16
KR101959252B1 (ko) 2019-07-04
CN103544003B (zh) 2018-09-21
EP2687944A2 (en) 2014-01-22
JP6186196B2 (ja) 2017-08-23

Similar Documents

Publication Publication Date Title
KR101411756B1 (ko) 동적 전력 관리를 위한 도메인 특정 언어, 컴파일러 및 jit
US10078357B2 (en) Power gating functional units of a processor
KR20120058555A (ko) 조건부 비-분기 명령들의 비-실행을 예측하기 위한 방법들 및 장치들
CN104067225A (zh) 对用于图形处理单元的具有相关联的纹理加载指令的控制流指令的判定
KR102414386B1 (ko) 상승효과적 이종 프로세서를 구비하는 컴퓨터 구조
CN103544003A (zh) 基于数据管理功率的设备和方法
Bouziane et al. Compile-time silent-store elimination for energy efficiency: An analytic evaluation for non-volatile cache memory
CN108139929A (zh) 用于调度多个任务的任务调度程序和方法
US9395962B2 (en) Apparatus and method for executing external operations in prologue or epilogue of a software-pipelined loop
Pallister et al. Optimizing the flash-RAM energy trade-off in deeply embedded systems
US11726546B2 (en) Compiler directed fine grained power management
US20180260014A1 (en) Systems and methods for controlling memory array power consumption
Tomusk et al. Selecting heterogeneous cores for diversity
US11669491B2 (en) Processor, system on chip including heterogeneous core, and operating methods thereof for optimizing hot functions for execution on each core of a heterogeneous processor
Jeon et al. GPGPU register file management by hardware co-operated register reallocation
Yu et al. Hierarchical Read/Write Analysis for Pointer-Based OpenCL Programs on RRAM
Abdulsalam Using the greenup, powerup and speedup metrics to evaluate software energy efficiency
Chen et al. Compiler assisted instruction relocation for performance improvement of cache hit rate and system reliability
CN117170634A (zh) 代码编译方法、装置、存储介质及电子设备
Le Moullec et al. Power consumption estimation of the multi-threaded xinc processor
CN112947932A (zh) 对编译过程中的向量化进行优化的方法、装置及电子设备
Chu POERS: a performance-oriented energy reduction scheduling technique for a high-performance MPSoC architecture
US20120151456A1 (en) Low power program compiling device, method and computer readable storage medium for storing thereof
Arteaga et al. Locality-Driven Scheduling of Tasks for Data-Dependent Multithreading

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant