CN107436834A - 估算处理器功耗的方法、产品及*** - Google Patents
估算处理器功耗的方法、产品及*** Download PDFInfo
- Publication number
- CN107436834A CN107436834A CN201710349124.4A CN201710349124A CN107436834A CN 107436834 A CN107436834 A CN 107436834A CN 201710349124 A CN201710349124 A CN 201710349124A CN 107436834 A CN107436834 A CN 107436834A
- Authority
- CN
- China
- Prior art keywords
- power consumption
- event
- processor
- esl
- instruction
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
- G06F11/3062—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种估算处理器功耗的方法包含访问处理器的电子***层级(ESL)模型,其中所述ESL模型包含多个功能块,通过追踪用于多个机器代码指令的多个功能块的活动来识别多个处理器事件,以及基于所述多个处理器事件计算第一功耗值。该方法还包含通过分析对应于多个机器代码指令的多个微码操作码来识别多个周期,基于所述多个周期计算第二功耗值,以及将第一功耗值与第二功耗值相加计算总功耗值。本发明实施例还提供估算处理器功耗的产品和***。
Description
技术领域
本发明实施例涉及半导体领域,具体地,涉及估算处理器功耗的方法、产品及***。
背景技术
硬件和软件开发的多个方面依赖于通过执行机器代码指令的处理器得出的功耗估算。功耗估算是芯片确认与验证、电路设计和软件优化和过程开发的主要组成部分。
对于复杂的处理器设计,处理器行为有时通过电子***层级(ESL)模型来塑造,ESL模型中,低级硬件功能被更高级的、更抽象的功能块所代表。使用ESL模型能够在设计过程的相对较早阶段进行设计优化活动。
使用ESL模型的功能估算通常基于执行的指令并从状态级过渡中进行估算。可在处理器活动状态/空闲状态与缓存存储器的命中/未命中之间过渡。其他方法依赖于对处理器活动的更详细的分析。一般而言,在可能缺乏准确性的更快,状态级的估算方法和速度低于状态级方法的更准确、基于细节的方法之间存在折衷。
发明内容
根据本发明的一个方面,提供一种估算处理器功耗的方法,方法包括:访问处理器的电子***层级(ESL)模型,ESL模型包括多个功能块;通过追踪用于多个机器代码指令的多个功能块的活动识别多个处理器事件;基于多个处理器事件计算第一功耗值;通过分析与多个机器代码指令对应的多个微码操作码识别多个周期;基于多个周期计算第二功耗值;以及将第一功耗值与第二功耗值相加计算总功耗值。
根据本发明的另一方面,提供一种产品,包括:包含一组指令的非临时性计算机可读存储介质,一组指令配置成使处理器:访问处理装置的电子***层级(ESL)模型,ESL模型包括多个功能块;分析与多个机器代码指令对应的多个微码操作码;基于在多个微码操作码的分析中识别的多个周期计算基于周期的功耗值;追踪用于多个机器代码指令的多个功能块的活动;基于从追踪的活动中识别的多个处理装置事件计算基于事件的功耗值;以及通过将基于周期的功耗值和基于事件的功耗值相加计算总功耗值。
根据本发明的另一方面,提供一种***,包括:处理器;以及存储器,包含用于一个或多个程序的计算机程序代码,存储器和计算机程序代码结合处理器,使***:访问处理装置的电子***层级(ESL)模型,ESL模型包括多个功能块;追踪用于多个机器代码指令的多个功能块的活动;分析与多个机器代码指令对应的多个微码操作码;通过对从追踪活动识别的多个处理装置事件执行求和操作计算第一功耗值;通过对在多个微码操作码的分析中识别的多个周期执行求和操作计算第二功耗值;以及通过将第一功耗值和第二功耗值相加来估算总功耗值。
附图说明
本公开的一个或多个实施例的细节将在下列附图和说明中给出。通过说明、附图和权利要求书,本公开的其他特征和优势将显而易见。
图1为根据一些实施例的估算处理器功耗的方法的流程表单的框图。
图2为根据一些实施例的估算处理器功耗的方法的流程表单的框图。
图3为根据一些实施例的估算处理器功耗的方法的流程表单的框图。
图4为根据一些实施例的估算处理器功耗的方法的流程图。
图5为根据一些实施例的估算处理器功耗的***示意图。
图6为根据一些实施例的估算处理器功耗的方法的流程表单的框图。
图7为根据一些实施例的估算处理器功耗的方法的流程表单的框图。
图8为根据一些实施例的估算处理器功耗的方法的流程表单和一组指令的框图。
图9为根据一些实施例的估算处理器功耗的方法的流程表单的框图。
各图中的相同参考符号均指示相同元件。
具体实施方式
以下使用具体语言公开附图中所示的实施例或实例。然而,应当理解,实施例和示例不意欲用于限制。可以想象本公开实施例中的任何改变和修改及本文件中公开的原则的任何进一步的应用,这对于相关技术领域内普通技术人员而言是常规的。
在各种实施例中,处理器功耗的估算方法包含访问处理器的电子***层级(ESL)模型,此电子***层级(ESL)模型包括多个功能块。对于给定的一组机器代码指令,通过追踪多个功能块的活动和估算基于多个处理器事件的基于事件的功耗值来识别对个处理器事件。也对给定的一组机器代码指令加以分析以提取对应于ESL模型的微码指令的有序列表。进一步分析此微码指令的有序列表来确定从机器代码指令组中识别的每一微码指令的多个周期。基于周期的功耗值从用作每一微码指令的周期数目来估算的,并结合基于事件的功耗值来预计总功耗值。
图1为根据一些实施例的处理器功耗的估算方法的流程表单的框图。方法100是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。ESL处理器模型110通过事件监测器120来访问以估算功率估算130,并通过微码分析仪140来访问以估算另一功率估算150。结合功率估算130和功率估算150来估算总功耗160。在一些实施例中,功率估算130为事件监测器120的组件。在一些实施例中,功率估算150为微码仪140的组件。
ESL处理器模型110为估算功耗的处理器的模型。在各种实施例中,处理器为中央处理单元(CPU)、简化指令集估算(RISC)处理器、高级RISC机(ARM)处理器、数字信号处理器(DSP)、处理器核或另一相似的处理设备。在一些实施例中,ESL处理器模型110为开发的非最终阶段的处理器模型。在一些实施例中,ESL处理器模型110为具有完整设计的处理器模型。
ESL处理器模型110代表使用执行响应于机器代码指令的块级活动的功能块的处理器。事件监测器120追踪ESL处理器模型110中单个功能块的一个子集的活动来识别与特定机器代码指令组有关的特定事件。此类事件的非限定性实例包含中断、分支预测、提取和存储器管理单元操作和存储器缓存活动。在一些实施例中,事件监测器120追踪ESL处理器模型110中单个功能块的一个子集的活动。
功率估算130使用事件监测器120识别的事件来计算第一功耗值。在一些实施例中,功率估算130为被事件监测器120识别的事件的总和。在一些实施例中,功率估算130为事件监测器120除以与机器代码指令组有关的采样周期的事件总和。在一些实施例中,功率估算130为由事件监测器120识别的事件总和,事件监测器120中,每一事件乘以权重或权重因素,将事件转化为基于事件的功耗值。
在一些实施例中,应用在功率估算130的权重对于每一事件都具有相同的值。在一些实施例中,应用在功率估算130的权重的值基于每一事件的事件类型而有所不同。
微码分析仪140分析=机器代码指令组以析以提取对应于ESL模型110的微码指令的有序列表。微码指令的有序列表有时指的是微码指令的流动。机器代码指令仅包含机器代码或包含机器代码和操作数。微码指令是由解码与与ESL处理器模型110的一个或多个功能块一致的每一机器代码指令的操作码部分或整体而派生的。微码分析仪140还分析这一微码指令的有序列表以确定执行每一识别的微码指令的次数。因此,微码分析仪140从与操作码有关的每一微码指令的有序列表中消除微码指令的每一类型的周期数量。指令类型的非限定性实例为算术指令、数据处理指令和协处理器指令。
功率估算150使用微码分析仪140识别的周期来计算第二功耗值。在一些实施例中,功率估算150为微码分析仪140识别的周期的总和。在一些实施例中,功率估算150为被微码分析仪140识别的周期除以被与一组机器代码指令有关的采样周期的事件总和。在一些实施例中,功率估算150为由被微码分析仪140识别的周期的总和,在微码分析仪140识别的周期中,每一周期乘以将事件转化为基于事件的功耗值的权重。
在一些实施例中,应用在功率估算150的权重对于每一周期都具有相同的值。在一些实施例中,应用在功率估算150的权重的值基于每一周期的事件类型而有所不同。
总功耗160估算基于从功率估算130得到的第一功耗值和从功率估算140得到的第二功耗值组合来估算总功耗值。在一些实施例中,总功耗160是将第一功耗值和第二刚好在的相加以获得总功耗值。在一些实施例中,总功耗160为第一功耗值和第二功耗值的和,除以与一组机器代码指令有关的采样周期以获得总功耗值。
在一些实施例中,与一组机器代码指令有关的采样周期介于5毫秒(ms)到25ms之间。在一些实施例中,与一组机器代码指令有关的采样周期介于10毫秒(ms)到20ms之间。
通过结合事件和多个微码周期来估算处理器功耗值,应用状态级因素的方法提高了准确性且不要求与介于处理器周期分析的其他方法的估算次数。
图2为根据一些实施例的估算处理器功耗的方法200的流程表单的框图。方法200是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。ESL模型210被事件监测器220访问以用作被事件230进行的功率估算。在一些实施例中,事件203所进行的功率估算为事件监测器220的组件。如上述关于图1所述,ESL模型210、事件监测器220和被事件230进行的功率估算分别可用作ESL模型110、事件监测器120和被事件130进行的功率估算。
ESL模型210包含块中断211、提取213、解码215和缓存模型217。每一块中断211、提取213、解码215和缓存模型217代表ESL模型210的功能组件。在一些实施例中,ESL模型210包括额外块(未示出)。
ESL模型210的每一块中断211、提取213、解码215和缓存模型217与事件监测器220监视的至少一事件有关。块中断211与事件e_int221有关,块提取213与事件e_fetch213有关,块解码215与事件e_decode225有关,块缓存模型217与事件e_cache_hit227和事件e_cache_refill229有关。每一事件e_int221、e_fetch213、e_decode225、e_cache_hit227和e_cache_refill229代表在ESL模型210所代表的处理器中执行自然事件。
事件监测器220识别每一与在ESL模型210的块中断211、提取213、解码215和缓存模型217中执行的机器代码指令组有关的事件e_int221、e_fetch213、e_decode225、e_cache_hit227和e_cache_refill229。
事件230估算的功率接收许多事件监测器220识别的每一事件e_int221、e_fetch213、e_decode225、e_cache_hit227和e_cache_refill229并估算基于事件的总功耗值。为将每一事件的每一数字转换为功耗值,通过将每一数字与权重相乘的事件230进行功率估算。在一些实施例中,为将每一事件的每一数字转换为功耗值,通过将每一数字与基于与特定事件的处理器硬件获得而具有不同值的权重相乘的事件230进行功率估算。在一些实施例中,每一权重值为硬件制造商提供的预定值。在一些实施例中,每一权重值为仿真程序决定的预定值。
微码230执行的功率估算通过合计每一事件的功耗值来估算基于事件的总功耗值。在一些实施例中,微码230执行的功率估算通过合计每一事件的功耗值和除以与一组机器代码指令有关的采样周期来估算总周期功耗值。
在方程式给定的总功耗值的示例估算中,(1)e为事件类型数目,Ce为每一事件类型的的单个事件数,WE每一事件类型的权重,和SamplingPeriod为于机器代码指令组有关的采样周期。
图3为根据一些实施例的估算处理器功耗的方法300的流程表单的框图。方法300是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。ESL模型210被事件监测器微码分析仪340访问以用作被微码350执行的功率估算。在一些实施例中,微码350所执行的功率估算为微码分析仪340的组件。如上述关于图1所述,ESL模型210、微码分析仪340和被微码350执行的功率估算分别可用作ESL模型110、微码分析仪140和被微码件150进行的功率估算。
微码分析仪340访问一组机器代码指令。在一组实施例中,一组机器代码指令从存储在非临时性的估算机可读存储介质中的文件中获得。在一些实施例中,此一组机器指令通过输入/输入(I/O)设备接受。
微码分析仪340提取一组机器代码指令中的操作码341并使用ESL模型210的功能块解码215来解释操作码341。对于给定的操作码指令,功能块解码215提供执行ESL模型210所代表的处理器所必须的特定的微码指令。微码分析仪340将功能块解码215应用到操作码341的每一操作码指令以决定微码指令类型343。微码指令类型343包含分支、数据处理和算术指令。在一些实施例中,微码指令类型包含额外的指令类型(未示出)。
从操作码341和微码指令类型343,微码分析仪340识别与操作码341有关的每一微码指令345的多个周期。
微码350执行的功率估算接收微码分析仪340识别的每一微码指令345的多个周期并估算基于周期的总功耗值。为将每一微码指令345的每一周期数字转换为功耗值,微码3520执行的功率估算将每一数字与权重相乘。在一些实施例中,为将每一微码指令345的每一周期数字转换为功耗值,微码3520执行的功率估算将每一数字乘以与具有特定的微码指令有关的物理活动的值的权重。在一些实施例中,每一权重值为硬件制造商提供的预定值。在一些实施例中,每一权重值为仿真程序决定的预定值。
微码350执行的功率估算通过合计用作每一微码指令来估算基于周期的总功耗值。在一些实施例中,微码350执行的功率估算通过合计用作每一微码指令和除以与操作码341有关的采样周期劳估算总周期功耗值。
在方程式给定的总周期功耗值的示例估算中,(2)i为微码指令类型数目,Ci为每一微码指令类型的的单个周期数,Wi为每一微码类型的权重,和SamplingPeriod为与操作码指令有关的采样周期。
图6为根据一些实施例的估算处理器功耗的方法600的流程表单的框图。方法600是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。通过事件监测器620来访问和微码分析仪640来访问ARMv7ESLCPU模型610以估算另一功率估算660。
如上述关于图1-3所述,ARMv7ESLCPU模型610、事件监测器620、微码分析仪640和估算功耗660分别可用作ESL模型110和210、事件监测器120和220、微码分析仪140和340以及总功耗160。
ARMv7ESLCPU模型610包括执行响应机器代码指令的快级活动的块611。事件监测器620追踪ARMv7ESL CPU模型610中的单个块611的活动来识别与特定一组机器代码指令有关的特定事件621。每一事件621具有关联权重622。采样功率630通过基于事件621和权重622的事件来执行功率估算以产生总事件功耗值。
微码分析仪640分析一组机器代码指令以析以提取对应于ARMv7ESLCPU模型610的微码指令的有序列表。类别操作码是由解码与与ARMv7ESLCPU模型610的一个或多个功能块一致的每一机器代码指令的操作码部分或整体而派生的。散列指令周波分析微码指令的有序列表来决定执行每一识别的微码指令操作类型的次数并将每一识别的微码指令操作类型与权重相关联。因此,微码分析仪640从与操作码操作有关的微码指令的有序列表中消除用于每一微码类型的多个周期和权重。采样功率650通过基于每一操作类型的周期和权重的微码来执行功率估算以产生总事件功耗值。
估算功耗600结合从采样功率630得到的总事件功耗值和从采样功率650得到的总周期功耗值来估算用于在ARMv7ESL CPU模型610上执行的一组机器代码的总功耗值。
图7为根据一些实施例的估算处理器功耗的方法700的流程表单的框图。方法700是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。在方法700中,事件周期和质量周期组合起来估算功耗功率。方法700可用作如上关于图6所述,执行事件监测器620、微码分析仪640、估算功耗660的一些或全部的操作。
图8为根据一些实施例的估算处理器功耗的方法800的一组指令流程表单的框图。方法800是一组指令是由处理器执行并存储在非临时性的估算机可读存储介质。在方法800中,事件监测器620和微码监测器640通过基于uCode(ARMv7ESL CPU模型)执行以估算总功耗。方法800可用作如上关于图6所述,执行事件监测器620、微码分析仪640、估算功耗660的一些或全部的操作。
图9为根据一些实施例的估算处理器功耗的方法900的流程表单的框图。方法900是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。通过事件监测器920和微码分析仪940和来访问CeVA TL4ESL DSP模型910以估算功耗960。
如上述关于图1-3所述,CeVA TL4ESL DSP模型910、事件监测器920、微码分析仪940和估算功耗960分别可用作ESL模型110和210、事件监测器120和220、微码分析仪140和340以及总功耗160。
CeVA TL4ESL DSP模型910包括执行响应机器代码指令的块级活动的块911。事件监测器920追踪CeVA TL4ESL DSP910中单个功能块911的的活动来识别与特定一组机器代码指令有关的特定事件921。累计事件计数通过基于事件921和的事件来产生总事件功耗值。
微码分析仪940分析一组机器代码指令以析以提取对应于CeVA TL4ESL DSP模型910的微码指令的有序列表。类别操作码是由解码与CeVA TL4ESL DSP模型910的一个或多个功能块一致的每一机器代码指令的操作码部分或整体而派生的。散列指令周波分析这一微码指令的有序列表以确定执行每一识别的微码指令的次数。因此,微码分析仪940从与操作码操作有关的微码指令的有序列表中消除用于每一微码类型的多个周期。累计操作码6通过基于每一操作类型的周期微码来执行功率估算以产生总周期功耗值。
估算功耗9600结合从累计事件数得到的总周期功耗值和从累计操作码周期6得到的总周期功耗值来估算用于在CeVA TL4ESL DSP模型910上执行的一组机器代码的总功耗值。
图4为根据一些实施例的估算处理器功耗的方法400的框图。方法400是一组由处理器执行的指令并存储在非临时性的估算机可读存储介质。在一些实施例中,根据方法400的挫折估算处理器功耗包括访问、创造或修改一个或多个包含对应于ESL处理器模型、事件权重、指令权重、采样周期和/或功率估算的电子文件。
在操作401中,用于估算处理器访问功耗的***处理器,是执行对应于方法100、200、300、600、700、800或900、ESL处理器模型和一组机器代码指令的至少一个的指令。在一些实施例中,ESL处理器模型和/或一组机器代码指令从存储在非临时性的估算机可读存储介质中的文件中获得。在一些实施例中,一ESL处理器模型和/或一组机器代码指令通过输入/输入(I/O)设备接受。在一些实施例中,ESL处理器模型为上述关于图2所讨论的ESL处理器模型110。在一些实施例中,ESL处理器模型为上述关于图2和图3所讨论的ESL处理器模型210。在一些实施例中,ESL处理器模型为上述关于图2和图3所讨论的ARMv7ESL CPU模型610。在一些实施例中,ESL处理器模型为上述关于图9所讨论的CeVA TL4ESL DSP模型910。所述机器代码指令为配置为通过ESL模型代表的处理器所执行的一组指令。
在操作402中,基于一组机器代码指令追踪ESL模型的功能块的活动以绝对与机器代码有关的块事件。在一些实施例中,功能块的活动被上述图1讨论的事件监测器120所追踪。在一些实施例中,功能块的活动被上述图2讨论的事件监测器220所追踪。在一些实施例中,功能块的活动被上述图6-8讨论的事件监测器620所追踪。在一些实施例中,功能块的活动被上述图9讨论的事件监测器920所追踪。
在操作403中,基于事件的总功耗值基于在操作402中识别的事件来估算。在一些实施例中,基于事件的总功耗通过上述关于图1所讨论的功率估算130来估算。在一些实施例中,基于事件的总功耗通过上述关于图2所讨论的功率估算230来估算在一些实施例中,基于事件的总功耗通过上述关于图6-8所讨论的采样功率估算630样功率估算630来估算。在一些实施例中,基于事件的总功耗通过上述关于图1所讨论的累计事件数来估算。
在操作404中,一组机器代码指令基于ESL处理器模型来分析以决定微码指令活动。此分析使用每一机器代码指令的操作码部分和ESL处理器模型来决定用于执行在由ESL处理器模型代表的处理器上的一组机器代码指令所要求的微码指令。此分析设备与操作码有关的每一微码指令的周期数目。在一些实施例中,微码指令被上述图1讨论的微码分析仪140所分析。在一些实施例中,微码指令被上述图3讨论的微码分析仪340所分析。在一些实施例中,微码指令被上述图6-8讨论的微码分析仪640所分析。在一些实施例中,微码指令被上述图9讨论的微码分析仪940所分析。
在操作405中,基于周期的总功耗值基于在操作404中识别的微码指令周期来估算。在一些实施例中,基于周期的总功耗通过上述关于图1所讨论的功率估算150来估算。在一些实施例中,基于周期的总功耗通过上述关于图3所讨论的微码估算350来估算。在一些实施例中,基于周期的总功耗通过上述关于图6-8所讨论的采样功率估算650来估算。在一些实施例中,基于周期的总功耗通过上述关于图9所讨论的;累计操作码周期来估算。
在操作406中,,总功耗值通过基于事件的总功耗值和基于周期的总功耗值来估算。在一些实施例中,总功耗值通过合计基于事件的总功耗值和基于周期的总功耗值来估算。在一些实施例中,总功耗值通过上述关于图1所讨论的总功耗160来估算。在一些实施例中,总功耗值通过上述关于图6-8所讨论的估算功耗660来估算。在一些实施例中,总功耗值通过上述关于图9所讨论的估算功耗960来估算。
在操作407中,在一些实施例中,总功耗值用来修改处理器设计的元素。在一些实施例中,使用总功耗值来修改处理器设计的元素包含生产含有一组或多组机器代码指令,基于事件的总功耗值、基于周期的总功耗值或总功耗值的文件。
在一些实施例中,使用总功耗值来修改处理器设计的元素包含将总功耗值与从ESL处理器模型代表的处理器中测量的总功耗关联。在一些实施例中,使用总功耗值来修改处理器设计的元素包含修改ESL处理器模型代表的处理器的硬件。
在一些实施例中,使用总功耗值来修改处理器设计的元素包含修改存储在非临时性的估算机可读存储介质中的文件。在一些实施例中,修改存储在非临时性的估算机可读存储介质中的文件包含修改用来形成一组用来制造ESL处理器代表的处理器掩膜的文件。
图5为根据一些实施例的估算处理器功耗的***500示意图。***500包含硬件处理器502和编码为,例如,存储估算机程序指令504,例如,一组可执行的指令506的非临时性的估算机可读存储介质。指令506包含用于估算处理器功耗的指令。处理器502通过总线508电性联接到估算机可读存储介质504中。处理器208还可通过总线508电性联接到I/O界面510。网络界面512也通过总线508电性联接到处理器502上。网络界面512与网络514连接,从而使处理器502和估算机可读存储介质504能够通过网络514连接到外部元件中。处理器502被配置为执行在估算机可读存储介质504中编码的估算机程序指令506,以使***500能够用于执行如方法400所描述的操作的部分或全部。
在一些实施例中,处理器502为中央处理单元(CPU)、多处理器、分布式处理***、专用集成电路(ASIC)和/或合适的处理单元。
在一些实施例中,估算机可读存储介质504为用于以非临时性方式存储指令和/或数据的电子、磁性、光学、电磁、红外线和/或半导体***(或装置或器件)。例如,估算机可读存储介质504包含半导体或固态存储器、磁带、移动估算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和/或光盘。在一些使用光盘的实施例中,估算机可读存储介质504包含光盘只读存储器(CD-ROM)、读写光盘存储器(CD-R/W)和/或数字视频光盘(DVD)
在一些实施例中,估算机可读存储介质504存储被配置为使***500执行方法400的估算机程序代码506。在一些实施例中,估算机可读存储介质504还存储执行方法400所需的信息以及在执行方法400期间产生的信息,例如,ESL处理器模型520、事件权重参数522、周期权重参数524、采样周期参数526、功率估算528和/或一组用于执行方法400操作的可执行指令。
***500包含I/O界面510。I/O界面510电性连接到外部电路。在一些实施例中,I/O界面510包含键盘、小键盘、鼠标、轨迹球、轨迹板和/或用于传递信息和/或命令给处理器502的光标方向键。
***500还包含联接到处理器502上的网络界面512。网络界面512允许***500与与一个或多个其他计算机***连接的网络514连通。网络界面512包含无线网界面,例如蓝牙、WIFI、WIMAX、GPRS或WCDMA或有限网络界面,如ETHERNET、USB或IEEE-1394。在一些实施例中,方法400在两个或多个***500中完成,诸如ESL处理器模型、事件权重、周期权重、采样周期和功率估算的信息通过网络514在不同的***500之间交流。
***500被配置为接收与处理器功率估算有关的信息。此存储通过总线508转移到处理器502中,然后作为处理器模型520存储在估算机可读介质504中。在一些实施例中,ESL处理器模型在操作401中获得(图4)。***500被配置为接收与作为事件权重参数522存储在估算机可读介质504的事件权重有关的信息。在一些实施例中,事件权重参数在操作403中应用。***500被配置为接收与作为周期权重参数524存储在估算机可读介质的周期权重有关的信息。在一些实施例中,周期权重参数在操作405中应用。***500被配置为接收与作为采样周期参数526存储在估算机可读介质的采样周期有关的信息。在一些实施例中,采样周期在操作403中应用。在一些实施例中,采样周期在操作405中应用。在一些实施例中,采样周期在操作406中应用。***500被配置为产生与作为功率估算528存储在估算机可读介质的功率估算有关的信息。在一些实施例中,功率估算在操作403、405和406中产生。
通过被配置为执行方法400,***500能够比应用状态级因素的***更精确地估算处理器的功耗,且无需估算与应用低水平处理器周期分析的其他***有关的估算次数。
在一些实施例中,估算处理器功耗的方法包括访问所述处理器的包括多个功能块的电子***层级(ESL)模型、通过追踪用作多个机器代码指令的多个功能块的活动来识别多个处理器事件并估算基于多个处理器事件的第一功耗值。所述方法还包括通过分析对应于所述多个机器代码的指令的多个微码操作码来识别多个周期,估算基于所述多个周期的第二功耗值并通过将所述第一功耗值和所述功耗值相加来估算总功耗值。
在一些实施例中,产品包括含有一种指令的非临时性的估算机可读存储介质,一种指令被配置为使处理器访问处理装置的电子***层级(ESL)模型,ESL模型包括多个功能块,分析对应于多个机器代码指令的微码操作码,并估算从分析多个微码操作码中识别的多个周期来估算基于周期的功耗值。一种指令被配置为使处理器追踪应用多个机器代码指令的多个功能块的活动,并估算基于从追踪活动中识别的多个处理装置事件的基于事件功耗值,并通过将基于周期功耗值和基于事件功耗值相加来估算总功耗值。
在一些实施例中,包括处理器和存储器的***包含用于一个或多个陈星的估算机程序代码,存储器和估算机程序代码被配置为,结合处理器,使***访问处理装置的电子***层级(ESL)模型,ESL模型包括多个功能块,应用多个机器代码指令的多个功能块的追踪活动并分析对应于多个机器代码指令的微码操作码。估算机程序代码被配置为使***通过对从追踪的活动中识别的多个处理设备事件进行求和运算来计算第一功耗值,通过分析多个微码操作码识别的多个周期进行求和运算来计算第二功耗值,通过将第一功耗值和第二功耗值相加来估算总功耗值。
根据本发明的一个方面,提供一种估算处理器功耗的方法,方法包括:访问处理器的电子***层级(ESL)模型,ESL模型包括多个功能块;通过追踪用于多个机器代码指令的多个功能块的活动识别多个处理器事件;基于多个处理器事件计算第一功耗值;通过分析与多个机器代码指令对应的多个微码操作码识别多个周期;基于多个周期计算第二功耗值;以及将第一功耗值与第二功耗值相加计算总功耗值。
根据本发明的一个实施例,识别多个处理器事件包括识别多个处理器事件的每个处理器事件的事件类型。
根据本发明的一个实施例,计算第一功耗值包括将权重应用到多个处理器事件的每个处理器事件。
根据本发明的一个实施例,将权重应用到多个处理器事件的每个处理器事件包括应用具有基于多个处理器事件的每个处理器事件的事件类型变化的值的权重。
根据本发明的一个实施例,计算第一功耗值包括对多个处理器事件执行求和操作。
根据本发明的一个实施例,识别多个周期包括识别多个微码操作码的每个操作码的操作类型。
根据本发明的一个实施例,计算第二功耗值包括将权重应用到多个周期的每个周期。
根据本发明的一个实施例,将权重应用到多个周期的每个周期包括应用具有基于多个微码操作码的每个操作码的操作类型变化的值的权重。
根据本发明的一个实施例,计算第二功耗值包括对多个周期执行求和操作。
根据本发明的一个实施例,计算第一功耗值、计算第二功耗值或计算总功耗值中的至少一个包括基于采样周期执行除法。
根据本发明的一个实施例,方法还包括使用估算的总功耗值来修改处理器设计的元素。
根据本发明的另一方面,提供一种产品,包括:包含一组指令的非临时性计算机可读存储介质,一组指令配置成使处理器:访问处理装置的电子***层级(ESL)模型,ESL模型包括多个功能块;分析与多个机器代码指令对应的多个微码操作码;基于在多个微码操作码的分析中识别的多个周期计算基于周期的功耗值;追踪用于多个机器代码指令的多个功能块的活动;基于从追踪的活动中识别的多个处理装置事件计算基于事件的功耗值;以及通过将基于周期的功耗值和基于事件的功耗值相加计算总功耗值。
根据本发明的一个实施例,一组指令配置成使处理器通过执行以下任务计算基于事件的功耗值:对多个处理装置事件执行求和操作;以及将权重应用于多个处理装置事件的每个处理装置事件。
根据本发明的一个实施例,一组指令配置成使处理器通过应用具有基于多个处理装置事件的每个处理装置事件的事件类型变化的值的权重计算基于事件的功耗值。
根据本发明的一个实施例,一组指令配置成使处理器通过执行以下任务计算基于周期的功耗值:对多个周期执行求和操作;以及将权重应用于多个周期的每个周期。
根据本发明的一个实施例,一组指令配置成使处理器通过应用具有基于多个微码操作码的每个操作码的操作类型变化的值的权重计算基于周期的功耗值。
根据本发明的一个实施例,一组指令配置成通过基于采样周期执行除法使处理器计算基于事件的功耗值、基于周期的功耗值、或总功耗值中的至少一个。
根据本发明的另一方面,提供一种***,包括:处理器;以及存储器,包含用于一个或多个程序的计算机程序代码,存储器和计算机程序代码结合处理器,使***:访问处理装置的电子***层级(ESL)模型,ESL模型包括多个功能块;追踪用于多个机器代码指令的多个功能块的活动;分析与多个机器代码指令对应的多个微码操作码;通过对从追踪活动识别的多个处理装置事件执行求和操作计算第一功耗值;通过对在多个微码操作码的分析中识别的多个周期执行求和操作计算第二功耗值;以及通过将第一功耗值和第二功耗值相加来估算总功耗值。
根据本发明的一个实施例,存储器和计算机程序代码配置成结合至少一个处理器,通过将权重应用到每个处理装置事件使***对多个处理装置事件执行求和操作,权重具有基于多个处理装置事件的每个处理装置事件的事件类型变化的值。
根据本发明的一个实施例,存储器和计算机程序代码配置成结合至少一个处理器,通过将权重应用到每个循环使***对多个周期执行求和操作,权重具有基于多个微码操作码的每个操作码的操作类型变化的值。
尽管已详细描述了实施例及其优点,但应该理解,在不背离所附权利要求所限定的实施例的精神和范围的情况下,可进行各种改变、替换和变更。此外,本应用的范围并不旨在限制于本说明书中描述的工艺、机器、制造、物质成分、方式、方法和步骤的特定实施例。所属领域的技术人员将从本发明的公开内容中容易了解当前存在或以后开发的工艺、机器、制造、物质成分、方式、方法或步骤,它们与此处描述的根据本发明使用的相应实施例执行的功能或取得的结果大体上相同。因此,附图旨在包含其范围内的工艺、机器、制造、物质成分、方式、方法或步骤。此外,每个权利要求构成一个单独的实施例,且各权利要求和实施例的组合在本公开的范围内。
Claims (1)
1.一种估算处理器功耗的方法,所述方法包括:
访问所述处理器的电子***层级(ESL)模型,所述电子***层级模型包括多个功能块;
通过追踪用于多个机器代码指令的所述多个功能块的活动识别多个处理器事件;
基于所述多个处理器事件计算第一功耗值;
通过分析与所述多个机器代码指令对应的多个微码操作码识别多个周期;
基于所述多个周期计算第二功耗值;以及
将所述第一功耗值与所述第二功耗值相加计算总功耗值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/167,243 | 2016-05-27 | ||
US15/167,243 US10101796B2 (en) | 2016-05-27 | 2016-05-27 | Processor power estimation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107436834A true CN107436834A (zh) | 2017-12-05 |
Family
ID=60420491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710349124.4A Pending CN107436834A (zh) | 2016-05-27 | 2017-05-17 | 估算处理器功耗的方法、产品及*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US10101796B2 (zh) |
CN (1) | CN107436834A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694714A (zh) * | 2020-06-15 | 2020-09-22 | 中国人民解放军国防科技大学 | 一种众核芯片功耗估算方法、装置、设备及可读存储介质 |
CN111782454A (zh) * | 2020-08-05 | 2020-10-16 | 中国人民解放军国防科技大学 | 基于指令epi的细粒度gpdsp功耗测试方法、***及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013158134A2 (en) | 2012-04-18 | 2013-10-24 | Ney-Li Funding, Llc | Sensing and control for improving switched power supplies |
US9710863B2 (en) | 2013-04-19 | 2017-07-18 | Strategic Patent Management, Llc | Method and apparatus for optimizing self-power consumption of a controller-based device |
US11023025B2 (en) * | 2016-11-16 | 2021-06-01 | Cypress Semiconductor Corporation | Microcontroller energy profiler |
US11442834B2 (en) * | 2018-08-21 | 2022-09-13 | Wiliot, LTD. | System and method for analyzing power usage of an energy-aware computing system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290246B2 (en) * | 2002-04-04 | 2007-10-30 | Texas Instruments Incorporated | Power profiling system and method for correlating runtime information |
WO2007066319A1 (en) * | 2005-12-08 | 2007-06-14 | Mentor Graphics Corporation | Conversion of switching signals of a circuit simulation into a transaction model |
GB0618894D0 (en) * | 2006-09-26 | 2006-11-01 | Ibm | An entitlement management system |
US8479055B2 (en) * | 2010-05-16 | 2013-07-02 | International Business Machines Corporation | Detecting and optimizing false sharing |
US8756544B2 (en) * | 2010-12-06 | 2014-06-17 | Industrial Technology Research Institute | Method for inserting characteristic extractor |
CN106909444B (zh) * | 2011-12-22 | 2021-01-12 | 英特尔公司 | 用于指定应用线程性能状态的指令的指令处理装置及相关方法 |
US8806388B2 (en) * | 2012-03-23 | 2014-08-12 | Texas Instruments Incorporated | Extraction of imaging parameters for computational lithography using a data weighting algorithm |
US9395804B2 (en) * | 2013-02-08 | 2016-07-19 | International Business Machines Corporation | Branch prediction with power usage prediction and control |
US20150241944A1 (en) * | 2014-02-25 | 2015-08-27 | International Business Machines Corporation | Distributed power management with performance and power boundaries |
US9575677B2 (en) * | 2014-04-29 | 2017-02-21 | Sandisk Technologies Llc | Storage system power management using controlled execution of pending memory commands |
US10162683B2 (en) * | 2014-06-05 | 2018-12-25 | International Business Machines Corporation | Weighted stealing of resources |
US9606602B2 (en) * | 2014-06-30 | 2017-03-28 | Intel Corporation | Method and apparatus to prevent voltage droop in a computer |
US10491537B2 (en) * | 2014-10-28 | 2019-11-26 | Salesforce.Com, Inc. | Facilitating dynamic hierarchical management of queue resources in an on-demand services environment |
US9684364B2 (en) * | 2014-12-09 | 2017-06-20 | Intel Corporation | Technologies for out-of-band power-based task scheduling for data centers |
US9529416B2 (en) * | 2015-02-25 | 2016-12-27 | Sony Interactive Entertainment America Llc | Rack space power utilization |
US20170192473A1 (en) * | 2015-12-30 | 2017-07-06 | Qualcomm Incorporated | System and method for intelligent thermal management based on a thermal power envelope in a portable computing device |
US10503238B2 (en) * | 2016-11-01 | 2019-12-10 | Microsoft Technology Licensing, Llc | Thread importance based processor core parking and frequency selection |
-
2016
- 2016-05-27 US US15/167,243 patent/US10101796B2/en active Active
-
2017
- 2017-05-17 CN CN201710349124.4A patent/CN107436834A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694714A (zh) * | 2020-06-15 | 2020-09-22 | 中国人民解放军国防科技大学 | 一种众核芯片功耗估算方法、装置、设备及可读存储介质 |
CN111782454A (zh) * | 2020-08-05 | 2020-10-16 | 中国人民解放军国防科技大学 | 基于指令epi的细粒度gpdsp功耗测试方法、***及介质 |
CN111782454B (zh) * | 2020-08-05 | 2023-08-18 | 中国人民解放军国防科技大学 | 基于指令epi的细粒度gpdsp功耗测试方法、***及介质 |
Also Published As
Publication number | Publication date |
---|---|
US10101796B2 (en) | 2018-10-16 |
US20170344091A1 (en) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436834A (zh) | 估算处理器功耗的方法、产品及*** | |
US8010334B2 (en) | Method and apparatus for evaluating integrated circuit design performance using basic block vectors, cycles per instruction (CPI) information and microarchitecture dependent information | |
CN108885579B (zh) | 用于根据核追踪进行数据挖掘的方法和设备 | |
US20110016455A1 (en) | Power Profiling for Embedded System Design | |
Wang et al. | An efficient approach for system-level timing simulation of compiler-optimized embedded software | |
JP2017167930A (ja) | 情報処理装置、電力測定方法及び電力測定プログラム | |
CN113901745A (zh) | 芯片测试方法、装置、电子设备及计算机可读存储介质 | |
US20040098242A1 (en) | Repartitioning performance estimation in a hardware-software system | |
JP5514211B2 (ja) | 分岐オーバーライドを用いたプロセッサ実行のシミュレーション | |
US20130013283A1 (en) | Distributed multi-pass microarchitecture simulation | |
Hassani et al. | LiveSim: Going live with microarchitecture simulation | |
US7684971B1 (en) | Method and system for improving simulation performance | |
CN106610873B (zh) | 一种Android设备上应用程序能耗预测方法 | |
CN109783837A (zh) | 仿真设备、仿真***、仿真方法和仿真程序 | |
US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
CN114253821B (zh) | 一种分析gpu性能的方法、装置及计算机存储介质 | |
Pereira et al. | Dynamic phase analysis for cycle-close trace generation | |
US10467118B2 (en) | Techniques for performance analysis of processor instruction execution | |
CN116149917A (zh) | 评估处理器性能的方法及装置、计算设备、可读存储介质 | |
US20020188889A1 (en) | Performance measurement for embedded systems | |
JP2015169997A (ja) | プログラム解析装置及びプログラム解析方法及びプログラム | |
Sartor et al. | Androprof: A profiling tool for the android platform | |
Plyaskin et al. | System-level software performance simulation considering out-of-order processor execution | |
Otoom et al. | Novel Framework for Designing Representative Usage-Based Benchmarks for Smartphones | |
Dubey et al. | Profile-driven generation of trace samples |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171205 |