用于虚拟平台模拟的功率监测系统的制作方法

文档序号:10617829阅读:328来源:国知局
用于虚拟平台模拟的功率监测系统的制作方法
【专利摘要】本申请针对一种用于虚拟平台模拟的功率监测系统。在一个实施例中,模拟系统可包括虚拟功率监测器(VPMON)和性能模拟器。示例VPMON模块可至少包括系统代理(SA)模块,以从性能模拟器接收虚拟平台数据。SA模块然后可进一步基于虚拟平台数据来确定至少一个组件功率模型,并且可进行基于至少一个组件功率模型来公式化平台功率模型。在虚拟平台的模拟期间,SA模块可进一步基于平台功率模型来生成与虚拟平台对应的功率数据。例如,SA模块可得到来自性能模拟器的性能数据,并且可向平台功率模型提供性能数据,以生成功率数据。
【专利说明】
用于虚拟平台模拟的功率监测系统
技术领域
[0001]本公开涉及硬件模拟,以及更具体来说涉及可与性能模拟进行交互以生成虚拟平台的功率数据的系统。【背景技术】
[0002]电子设备的设计人员可在硬件实现之前采用模拟系统来了解其设计。以这种方式,可在实现问题设计上节省大量费用、资源、时间等。现有模拟系统聚焦于硬件性能,以允许设计人员在他们的设计之中获得最多。例如,装置的模拟可允许设计人员虚拟化各种组件可如何进行交互、其交互的速度、潜在输出等。虽然模拟性能的能力持续对设计人员是有益的,但是对各种能量相关操作特性(例如诸如基于按组件和总共的能量消耗、能量效率等)的关注不断增加。能量特性对于例如可依靠电池功率的电子设备的增长部分(growing segment)会是重要的,例如移动通信装置(像智能电话)、移动计算装置(像平板计算机)等。
[0003]可用设计系统可包括有限功率相关建模特征集合,但是不包括支持调制解调器短设计循环次数所需要的东西。现有功率相关特征可包括分离工具和分析模型,其不能够以一致的方式评估现实世界操作情形的系统模拟。具体来说,它们不能够考虑典型操作系统任务、应用等来对计算系统中的各种组件(例如中央处理器(CPU)、图形处理单元(GPU)、存储器、接口、总线等)之间的交互进行建模。所引起的一致性、能力等的缺乏极大地降低可由该工具生成的功率特性的有用性。此外,现有功率相关诊断通常是集成在特定模拟系统的整体特征集合内的外来(extraneous)特征。这种结合方式束缚了特征对特定模拟系统的限制的能力。操作员(例如设计人员)则被迫学习多种不同能量相关诊断工具的细节,而不是能够将单个工具用在多种不同模拟情形中。【附图说明】
[0004]当以下【具体实施方式】进行时并且在参照附图时,要求保护主题的各种实施例的特征和优点将变得显而易见,其中,相同的标号表示相同的部件,并且其中:图1示出按照本公开的至少一个实施例的用于虚拟平台模拟的示例功率监测系统;图2示出按照本公开的至少一个实施例可使用的模拟系统的示例配置;图3示出按照本公开的至少一个实施例的用于虚拟平台模拟的功率监测系统的示例功能布局;图4示出按照本公开的至少一个实施例的用于虚拟功率监测器激活的示例操作;以及图5示出按照本公开的至少一个实施例的用于虚拟功率监测器配置的示例操作。
[0005]虽然以下【具体实施方式】将对说明性实施例进行参照而进行,但是它们的许多备选、修改和变更将是对本领域的技术人员显而易见的。【具体实施方式】
[0006]本申请针对用于虚拟平台模拟的功率监测系统。在一个实施例中,模拟系统可包括虚拟功率监测器(VPMON)和性能模拟器。VPMON模块可至少包括例如系统代理(SA)模块, 以从性能模拟器接收虚拟平台数据。SA模块然后可进一步基于虚拟平台数据来确定至少一个组件功率模型(例如,其可从VPMON模块的功率模型库中选择),并且可进行基于至少一个组件功率模型来公式化平台功率模型。在虚拟平台的模拟期间,SA模块可进一步基于平台功率模型来生成与虚拟平台对应的功率数据。例如,SA模块可得到(例如周期地取样)来自性能模拟器的性能数据,并且可向平台功率模型提供性能数据,以生成功率数据。
[0007]在一个实施例中,模拟系统可包括与性能模拟器进行交互的VPMON模块。VPMON模块可至少包括SA模块。SA模块可要至少接收来自性能模拟器的虚拟平台数据,基于虚拟平台数据来确定至少一个组件功率模型,基于至少一个组件功率模型来公式化平台功率模型,以及基于平台功率模型来生成与虚拟平台对应的功率数据。
[0008]在一个实施例中,确定至少一个组件功率模型的SA模块可包括选择至少一个组件功率模型以对应于虚拟平台数据中的至少一个虚拟化组件的SA模块。例如,VPM0N模块还可包括功率模型库,SA模块从功率模型库中选择至少一个组件功率模型。示例功率模型库可包括动态组件功率模型和静态组件功率模型的至少一个。在一个示例实现中,VPM0N模块还可包括促进功率数据的呈现的功率数据呈现模块以及封装至少SA模块、功率模型库和功率数据呈现模块的程序(programmatic)包装器。VPM0N模块可由插入性能模拟器中的软件组件扩展来组成。
[0009]在相同或不同的实施例中,公式化平台功率模型的SA模块可包括促进将组件功率模型插入平台功率模型或者从平台功率模型中去除组件功率模型的SA模块。生成功率特性的SA模块可包括至少接收来自性能模拟器的性能数据以及利用平台功率模型基于性能数据来生成功率数据的SA模块。至少接收性能数据的SA模块可包括周期地对性能数据取样的 SA模块。与本公开一致的示例方法可包括至少接收来自性能模拟器的虚拟功率监测器模块中的虚拟平台数据,基于虚拟平台数据来确定至少一个组件功率模型,基于至少一个组件功率模型来公式化平台功率模型,以及基于平台功率模型来生成与虚拟平台对应的功率数据。[〇〇1〇]图1示出按照本公开的至少一个实施例的用于虚拟平台模拟的示例功率监测系统。模拟系统一般可要生成硬件装置的基于软件的模型(例如虚拟平台)。例如,虚拟平台可在组件级合在一起,其中组成硬件装置的硬件组件可采用基于软件的组件模型来呈现。组件模型然后可如它们在现实世界装置中那样来布置,以公式化虚拟平台。虚拟平台可用来模拟硬件装置的操作,其中可监测给定现实世界状况(例如考虑可能的现实世界任务、输入、环境条件等)的虚拟平台的执行,以生成与硬件装置的预测性能对应的性能数据。
[0011]现有架构和寄存器传输级(RTL)功率模拟工具,例如架构级功率模拟器(ALPS),可以是准确的,但是在其范围和速度方面也受到限制。用于全系统功率建模的当前方式涉及若干分离工具。此外,这些方式没有包含客户应用执行的现实情形。例如,模拟的装置性能中的40%运行到运行变化(例如当运行若干多线程应用时)在利用现有工具时不是不常见的。这个变化可由例如可引起功率变化的线程争用和调度引起。一些平台模拟器可经过操作系统(0S)牵涉特征原样(as-1s)运行多线程应用二进制,但是没有包括功率监测功能性。 另一方面,当前基于跟踪的功率模拟方法不能够描绘这类情形。其他现有功率建模方法是离线的,并且使用应用跟踪对功率进行建模。虽然这些离线方法可报告例如每瓦特性能的量度,但是离线监测的功率可能不对应于准确性能运行。
[0012]在一个实施例中,模拟系统1〇〇可至少包括性能模拟器102和VPMON模块104。性能模拟器102可包括例如模拟系统100中的软件和/或设备,其可运行虚拟平台以模拟硬件装置性能。性能模拟器102的示例可包括但不限于Wind River Systems Incorporated所制造的Simics系统模拟器、Intel Corporat1n所制造的CoFluent系统模拟器等。这些封装可被采用来基于虚拟平台来模拟硬件装置的性能。虽然例如以上提到的性能模拟器102可以能够模拟装置性能,但是它们缺乏对硬件装置的功率使用进行建模的能力。然而,性能模拟器 102可包括允许第三方交互的模块化和调试特征。VPM0N模块104可利用性能模拟器102中的这些特征。例如,VPM0N模块104可体现为基于软件的扩展,其可“插入”性能模拟器102。在这个配置中,VPM0N模块104可以能够与多种性能模拟器102进行交互,并且可至少使用从性能模拟器102所接收的数据来例如公式化平台功率模型、生成功率数据等。
[0013]在一个实施例中,VPM0N模块104可至少包括SA模块106 AA模块106可至少基于性能模拟器102中的虚拟平台来公式化平台功率模型,并且进一步利用平台功率模型在由性能模拟器102对虚拟平台的模拟期间生成功率数据,功率数据表征虚拟平台的功率相关性能。在操作的示例中,SA模块106最初可接收来自性能模拟器102的虚拟平台数据108。
[0014]虚拟平台数据108可由性能模拟器102自动提供,可由性能模拟器102在接收来自 VPM0N模块104的请求时提供,可因与模拟系统100的用户交互而从性能模拟器102手动端口发送(ported over)到VPM0N模块104等。在接收虚拟平台数据108时,SA模块106可确定虚拟平台数据108内的至少一个虚拟化组件。例如,虚拟化组件可以是与性能模拟器102的虚拟平台内的CPU、GPU、存储器、总线、接口等对应的组件模型。SA模块106然后可进行基于至少一个组件功率模型112来公式化平台功率模型110。例如,SA模块106可选择与确定为存在于虚拟平台数据108中的至少虚拟化组件对应的组件功率模型112。在一个实施例中,其他组件功率模型112可被选择以考虑与虚拟平台、环境等对应的现实世界影响。SA模块106然后可将平台功率模型110用于生成功率数据116。例如,SA模块106可接收来自性能模拟器102 的性能数据114。性能数据114可由性能模拟器102在虚拟平台的模拟期间生成,并且可自动提供给SA模块106、由SA模块106来取样等。SA模块106然后可将性能数据114输入到平台功率模型110,以生成功率数据116。例如,性能数据114可包括在虚拟平台的模拟期间的虚拟化组件的利用数据,平台功率模型110可包括与虚拟化组件对应的组件功率模型112,以及将利用数据应用于对应的组件功率模型112可生成与例如组件/平台功率使用、效率等相关的多种功率数据。
[0015]图2示出按照本公开的至少一个实施例可使用的模拟系统的示例配置。具体来说, 模拟系统100’可以能够执行例如图1中所公开的功能性。然而,模拟系统100’仅意在作为与本公开一致的实施例中可使用的示例装备,而不意在将这些各种实施例局限于实现的任何特定方式。例如,模拟系统100’可包括例如图2中所示的一个以上装置,装置单独地或者经由网络连接一致地操作。
[0016]模拟系统100’可包括配置成管理装置操作的例如系统模块200。系统模块200可包括例如处理模块202、存储器模块204、功率模块206、用户界面模块208和通信接口模块210。 模拟系统1 〇〇 ’还可包括通信模块212。虽然通信模块212已经示出为与系统模块200分开,但是图2中所示的示例实现只是为了说明而提供。与通信模块212关联的部分或全部功能性可结合在系统模块200中。[〇〇17]在模拟系统100’中,处理模块202可包括位于独立组件中的一个或多个处理器或者备选地,单个组件中(例如片上系统(SoC)配置中的)体现的一个或多个处理核心以及任何处理器相关的支持电路(例如桥接接口等)。示例处理器可包括但不限于从Intel Corporat 1n可得到的各种基于x86的微处理器,包括Pentium、Xeon、Itanium、Celeron、 Atom、Core i系列产品族、高级RISC(例如精简指令集计算)机器或“ARM”处理器等。支持电路的示例可包括芯片组(例如从Intel Corporat1n可得到的北桥、南桥等),其配置成提供接口,经过其,处理模块202可与模拟系统100’中在不同总线上以不同速度进行操作的其他系统组件进行交互。通常与支持电路关联的功能性的部分或全部也可包含在与处理器相同的物理封装中(例如,诸如在从Intel Corporat1n可得到的处理器的Sandy Bridge族中)。 [〇〇18]处理模块202可配置成执行模拟系统100’中的各种指令。指令可包括程序代码,其配置成使处理模块202执行与读取数据、写入数据、处理数据、公式化数据、转换数据、变换数据等相关的活动。信息(例如指令、数据等)可存储在存储器模块204中。存储器模块204可包括按照固定或可拆卸格式的随机存取存储器(RAM)或只读存储器(ROM) AAM可包括配置成在模拟系统100 ’的操作期间保持信息的易失性存储器,例如诸如静态RAM(SRAM)或动态 RAiUDRAMhROM可包括基于B10S、UEFI等配置以在激活模拟系统100’时提供指令的非易失性(NV)存储器模块、可编程存储器(例如电子可编程R0M(EPR0M)、Flash等。其他固定/可拆卸存储器可包括但不限于:磁存储器,例如诸如软盘、硬驱动器等;电子存储器,例如固态闪速存储器(例如嵌入式多媒体卡(eMMC)等);可拆卸存储卡或存储棒(例如微存储装置 (1^0)、1^8等);光存储器,例如基于光盘的如11(00-1?(麗)、数字化视频光盘(0¥0)、蓝光光盘等。
[0019]功率模块206可包括内部功率源(例如电池、燃料电池等)和/或外部功率源(例如机电或太阳能发电机、电力网、燃料电池等)以及配置成向模拟系统100’供应操作所需的功率的相关电路。用户界面模块208可包括允许用户与模拟系统100’进行交互的硬件和/或软件,例如诸如各种输入机制(例如麦克风、开关、按钮、旋钮、键盘、扬声器、触摸敏感表面、配置成捕获图像和/或感测接近性、距离、运动、手势、取向等的一个或多个传感器)以及各种输出机制(例如扬声器、显示器、点亮/闪烁指示器、用于振动、运动等的机电组件)。用户界面模块208中的硬件可结合在模拟系统100’内,和/或可经由有线或无线通信介质来耦合到模拟系统100’。[〇〇2〇]通信接口模块210可配置成管理用于通信模块212(其可包括配置成支持有线和/ 或无线通信的资源)的分组路由选择和其他控制功能。在一些实例中,模拟系统100’可包括全部由中央通信接口模块210所管理的一个以上通信模块212(例如包括用于有线协议和/ 或无线无线电通信的独立物理接口模块)。有线通信可包括串行和并行有线介质,例如诸如以太网、通用串行总线(USB)、Firewire、数字视频接口(DVI)、高清晰度多媒体接口(HDMI) 等。无线通信可包括例如贴近无线介质(例如,诸如基于近场通信(NFC)标准、红外(IR)等的射频(RF))、短程无线介质(例如蓝牙、WLAN、W1-Fi等)、长程无线介质(例如蜂窝广域无线电通信技术、基于卫星的通信等)或者经由声波的电子通信。在一个实施例中,通信接口模块 210可配置成防止通信模块212中活动的无线通信相互干扰。在执行这个功能中,通信接口模块210可基于例如等待传输的消息的相对优先级来调度通信模块212的活动。虽然图2中所公开的实施例示出与通信模块212分开的通信接口模块210,但是通信接口模块210和通信模块212的功能性结合在同一模块内也是可能的。[〇〇21]在图2所公开的示例中,性能模拟器102和VPM0N模块104可占用和/或访问各种模块。在一个实施例中,性能模拟器102和VPM0N模块104可至少部分由驻留在存储器模块204 中的软件来组成。与性能模拟器102和VPM0N模块104关联的操作可由处理模块202来执行。 性能模拟器102和VPM0N模块104可经由用户界面208与用户以及经由通信模块212与其他装置(例如通过通信接口模块210)进行交互。与其他装置的通信可在例如模拟器系统100’包括一个以上装置的实例中发生。
[0022]图3示出按照本公开的至少一个实施例的用于虚拟平台模拟的功率监测系统的示例功能布局。图3中,模拟系统100’可至少包括性能模拟器102’和VPM0N模块104’。在性能模拟器102 ’内标识的示例特征可在例如Simics模拟系统中找到。性能模拟102 ’可包括例如模拟应用程序接口(S頂API)300、虚拟平台302以及调试和剖析(profilingWOLSM API 300 可至少控制虚拟平台302的执行(例如模拟)。例如,Sm API 300可使虚拟平台302被加载到性能模拟器102’中,可配置虚拟平台302(例如可使某些虚拟化组件被选择用于虚拟平台 302),可配置虚拟平台302的环境因素,可使模拟或虚拟平台302开始、暂停、停止等,可影响性能模拟器102’内的其他特征(例如调试和剖析304的操作)等。虚拟平台302可至少包括硬件装置的软件模型、所提出的硬件装置等。虚拟平台302可包括与组成硬件装置的硬件组件对应的虚拟化组件。图3中所公开的虚拟化组件的示例可包括但不限于:CPU 306,其可包括 (一个或多个)核306A和非核306B(例如不在(一个或多个)核心306A中的支持CPU 306的全部电路);媒体308(例如,用于处理诸如文本数据、音频数据、视频数据、触觉数据等的多媒体内容的知识产权(IP)块);GPU 310;网络312(例如网络接口卡(NIC)、无线网络模块等); 存储器314;显示器316(例如在结合在虚拟平台302中或者至少耦合到虚拟平台302的配置中);专用集成电路(ASIC);以及任何其他先前未分类设备318。调试和剖析304可在配置和/ 或运行时间期间与虚拟平台302进行交互。交互的示例可包括但不限于提供对内部和/或外部模块的访问,以配置、控制和/或接收来自虚拟平台302的数据。例如,调试和剖析304可至少提供对VPM0N模块104 ’的访问,以接收来自性能模拟器102 ’的虚拟平台数据108和性能数据114,以及在至少一个实施例中,还可提供控制虚拟平台302的模拟的某种能力(例如模拟的开始/停止/暂停等)。[〇〇23] 例如VPM0N模块104’可至少包括SA模块106、功率模型库320、VPM0N包装器322和功率数据呈现模块32LSA模块106可与性能模拟器102’进行交互,至少因为虚拟平台数据108 和性能数据114可经由调试和剖析304来得到。在操作的示例中,SA模块106可至少基于虚拟平台数据108从功率模型库320来确定组件功率模型112。功率模型库320可包括功率模型的至少一个库,其可源自例如VPM0N模块104’的源(例如制造商)、源自硬件组件的制造商(例如,在使新硬件组件可用于购买时,使对应功率模型可用于下载)、源自与模拟系统100’的用户的交互(例如手动配置)等。在图3中所公开的示例中,功率模型库320至少包括动态模型320A和静态模型320B的库。动态模型320A可包括组件功率模型112,其功率数据116可基于采用虚拟平台302所模拟的活动是可变的,并且可包括例如与包括(一个或多个)核心 306A和非核心306B(例如C/UnC)的CPU 306、GPU 310、存储器314、显示器316等对应的组件功率模型112。静态模型320B可包括组件功率模型112,其中功率数据116可保持为基本上稳定,而不管与对虚拟平台302所模拟的任务,包括但不限于用于模拟与电压调节(VR)、(一个或多个)风扇(例如CHJ和/或系统冷却风扇、泄漏等关联的功率特性的模型。SA模块106可从功率模型库320中选择组件功率模型112,并且可将所选组件功率模型112用于公式化平台功率模型110。[〇〇24]继续之前操作的示例,SA模块106然后可经由调试和剖析304至少接收来自性能模拟器102’的性能数据114。例如,在虚拟平台302的模拟期间,SA模块106可基于周期、基于事件驱动(例如基于模拟期间的事件的发生)、基于手动触发(例如基于用户交互等)对性能数据114取样。在至少一个实施例中,SA模块106可以能够经由调试和剖析304来影响性能模拟器102’中的操作。例如,SA模块106可以能够在性能数据114的取样期间使模拟暂停,并且然后在取样完成之后恢复操作。SA模块106可利用性能数据114来生成功率数据116。在一个实施例中,SA模块106可将性能数据114的至少一部分输入到平台功率模型110中。功率数据 116然后可在组件级(例如对应于平台功率模型110中的单独组件功率模型112)或者在系统级(例如对应于平台功率模型110)来生成。功率数据116内的数据的类型可包括但不限于功率使用数据、功率储备数据、功率效率数据、与功率问题相关的装置故障指示等。功率数据 116然后可提供给模拟系统100’的用户以用于消耗。在其中VPM0N模块104’可至少部分是基于软件的实施例中,VPM0N包装器322可封装关于VPM0N模块104’所描述的部分或全部功能性,并且可向功率数据呈现模块324提供功率数据116。功率数据呈现模块324可向性能模拟器102’(例如经由调试和剖析304)传送功率数据116以用于呈现(例如,显示功率数据116的至少一部分,基于功率数据116来显示图表、图形,基于功率数据116来生成可见或可听告警,等),可包括可向模拟系统100’的用户呈现功率数据116的独立用户界面,可向外部数据消费者传送功率数据116(例如,诸如数据库、电子表格、图形分析程序等的应用),等。
[0025]图4示出按照本公开的至少一个实施例的用于虚拟功率监测器激活的示例操作。 在操作400,可初始化性能模拟器102和VPM0N模块104。虚拟平台302的性能模拟然后可在操作402来配置。性能模拟的配置可包括例如被添加到虚拟平台302的虚拟化组件或从虚拟平台302去除的虚拟化组件、为虚拟平台302所设置的操作和/或环境条件、为模拟所指定的某些任务等。性能模拟可在操作404来发起。然后可在操作406进行确定关于是否应当发起功率模拟(例如是否基于虚拟平台302的模拟期望功率数据116的生成)。如果在操作406确定不期望功率模拟,则虚拟平台302的性能模拟可在操作408继续。[〇〇26]如果在操作406确定期望功率模拟,则在操作410,可暂停性能模拟。VPM0N模块104 然后可在操作412来加载(例如加载到模拟系统100的存储器中)。在操作414,可激活VPM0N 包装器322。在一个实施例中,VPM0N包装器322的激活可激活WPM0N中与下列操作的至少一个对应的功能性:接收来自性能模拟器102的虚拟平台数据108;公式化平台功率模型110; 接收来自性能模拟器102的性能数据114;以及使用性能功率模型110基于性能数据114来生成功率数据116。接着在操作414的VPM0N包装器322的激活,虚拟平台302的模拟可在操作 408继续。
[0027]图5示出按照本公开的至少一个实施例的用于虚拟功率监测器配置的示例操作。 图5中所公开的示例操作可在例如VPM0N模块104中发生。在操作500,可重置系统监测器(例如用于接收性能数据114)。然后在操作502可进行确定关于平台功率模型110是否已经基于性能模拟器102的当前配置(例如,基于性能模拟器102中加载的特定虚拟平台302)配置。如果在操作502确定没有配置系统,则虚拟平台数据108可在操作504来接收。在操作506,可解析(例如分析)虚拟平台数据108,以便例如确定虚拟化组件的列表。然后可在操作508进行确定关于是否需要平台模型110的重新配置。在一个实施例中,来自操作506的解析数据可与当前在平台模型110中的组件功率模型112的列表进行比较,以确定任何差异是否存在。 如果在操作508确定要求模型重新配置,则在操作510,组件功率模型112可被添加到功率模型110或从功率模型110去除。在一个实施例中,也可以有可能的是:配置用于没有对应的组件功率模型112的虚拟平台数据108中的虚拟化组件的新组件功率模型112,重新配置现有组件功率模型112以更紧密地对应于虚拟平台数据108中的虚拟化组件的现实世界特性等。 在操作512, VPMON模块104可基于在操作410所进行的对平台功率模型110的任何变更来更新。[〇〇28]在操作502的配置系统的确定或操作512之后可接着操作514,其中系统监测器可在VPM0N模块104中发起。例如,可发起定时器,将针对周期地触发取样的事件而对其监测, 可发起检测器,以监测非定时器相关样本事件等。然后可在操作516进行确定关于样本事件是否已经发生(例如,到周期取样的时间了、已经检测到触发事件等)。如果在操作516确定没有样本事件已经发生,则监测可在操作518继续。如果在操作516确定与取样关联的事件已经发生,则在操作520,可在SA模块106中接收性能数据114。在操作522,性能数据114可输入到平台功率模型110中,以在操作524生成功率数据116。在操作524的功率数据116的生成然后可由在操作526的功率数据116的输出(例如供呈现)接着。功率数据116在操作526的输出可选地可由操作518接着,其中功率监测可继续。
[0029]虽然图4和图5示出根据不同实施例的操作,但是要理解,并非图4或图5中描绘的操作全部是对其它实施例必需的。实际上,本文中完全预期,在本公开的其他实施例中,图4 和图5中描绘的操作和/或本文所描述的其他操作可按照附图的任一个中未具体示出的方式相结合,但是仍然完全与本公开一致。因此,针对一个附图中没有完全示出的特征和/或操作的权利要求被认为在本公开的范围和内容之内。
[0030]如本申请和权利要求书中所使用的,通过术语“和/或”所连接的项列表能够意味着所列项的任何组合。例如,短语“A、B和/或C"能够意味着:A;B;C;A和B;A和C;B和C;或者A、 B和C。如本申请和权利要求书中所使用的,通过术语“…的至少一个”所连接的项列表能够意味着所列术语的任何组合。例如,短语“A、B或C的至少一个”能够意味着:A;B;C;A和B;A和 C;B和C;或者A、B和C。[〇〇31]如本文的任何实施例中所使用的,术语“模块”可表示软件、固件和/或配置成执行上述操作的任一个的电路。软件可体现为非暂时计算机可读存储介质上记录的软件包、代码、指令、指令集和/或数据。固件可体现为代码、指令或指令集和/或存储器装置中硬编码 (例如非易失性)的数据。如本文的任何实施例中所使用的“电路”可包括例如单一或者以任何组合的硬连线电路、可编程电路(例如包括一个或多个单独指令处理核的计算机处理器)、状态机电路和/或存储由可编程电路所执行的指令的固件。模块可共同或者单独地体现为形成更大系统的部分的电路,例如集成电路(1C)、片上系统(SoC),桌上型计算机、膝上型计算机、平板计算机、服务器、智能电话等。
[0032]本文所描述操作的任一个可在系统中实现,其中该系统包括其上单独或组合地存储了指令的一个或多个存储介质(例如非暂时存储介质),指令在由一个或多个处理器执行时执行方法。在这里,处理器可包括例如服务器CPU、移动装置CPU和/或其他可编程电路。另夕卜,预计本文所描述的操作可跨多个物理装置,例如在一个以上不同物理位置的处理结构分布。存储介质可包括任何类型的有形介质,例如:任何类型的磁盘,包括硬盘、软盘、光盘、 光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体装置,例如,只读存储器 (ROM)、例如动态随机存取存储器(RAM)和静态RAM的RAM、可擦可编程只读存储器(EPROM)、 电可擦可编程只读存储器(EEPR0M)、闪速存储器、固态硬盘(SSD)、嵌入式多媒体卡(eMMC)、 安全数字输入/输出(SD10)卡、磁卡或光卡;或者适合于存储电子指令的任何类型的媒体。 其他实施例可实现为由可编程控制装置所执行的软件模块。
[0033]因此,本申请针对用于虚拟平台模拟的功率监测系统。在一个实施例中,模拟系统可包括虚拟功率监测器(VPM0N)和性能模拟器。示例VPM0N模块可至少包括系统代理(SA)模块,以从性能模拟器接收虚拟平台数据。SA模块然后可进一步基于虚拟平台数据来确定至少一个组件功率模型,并且可进行基于至少一个组件功率模型来公式化平台功率模型。在虚拟平台的模拟期间,SA模块可进一步基于平台功率模型来生成与虚拟平台对应的功率数据。例如,SA模块可得到来自性能模拟器的性能数据,并且可向平台功率模型提供性能数据,以生成功率数据。
[0034]以下示例与其他实施例有关。本公开的以下示例可包括主题材料,例如装置、方法、用于存储指令(其在被执行时使机器基于该方法来执行动作)的至少一个机器可读介质、用于基于该方法来执行动作的部件和/或用于虚拟平台模拟的功率监测系统,如以下所提供的。[〇〇35]按照示例1,提供有一种模拟系统。模拟系统可包括与性能模拟器进行交互的虚拟功率监测器模块,虚拟功率监测器模块至少包括用于执行下列操作的系统代理模块:至少接收来自性能模拟器的虚拟平台数据,基于虚拟平台数据来确定至少一个组件功率模型, 基于至少一个组件功率模型来公式化平台功率模型,以及基于平台功率模型来生成与虚拟平台对应的功率数据。[〇〇36]示例2可包括示例1的元件,其中确定至少一个组件功率模型的系统代理模块包括选择至少一个组件功率模型以对应于虚拟平台数据中的至少一个虚拟化组件的系统代理模块。
[0037]示例3可包括示例2的元件,其中虚拟功率监测器模块还包括功率模型库,系统代理模块从功率模型库中选择至少一个组件功率模型。
[0038]示例4可包括示例3的元件,其中功率模型库包括动态组件功率模型和静态组件功率模型的至少一个。
[0039]示例5可包括示例4的元件,其中与动态组件功率模型关联的功率数据在由性能模拟器对虚拟平台的模拟期间是可变的。
[0040]示例6可包括示例4至5的任一个的元件,其中与静态组件功率模型关联的功率数据在由性能模拟器对虚拟平台的模拟期间是基本上恒定的。[0041 ]示例7可包括示例3的元件,其中虚拟功率监测器模块还包括促进功率特性的呈现的功率数据呈现模块以及封装至少系统代理模块、功率模型库和功率数据呈现模块的程序包装器。
[0042]示例8可包括示例7的元件,其中功率数据呈现模块将至少向用户呈现功率数据。
[0043]示例9可包括示例7至8的任一个的元件,其中功率数据呈现模块将至少向性能模拟器提供功率数据以用于呈现。
[0044]示例10可包括示例7至8的任一个的元件,其中功率数据呈现模块将至少向不与性能模拟器或虚拟功率监测器模块关联的模拟系统中的应用提供功率数据。
[0045]示例11可包括示例7至8的任一个的元件,其中虚拟功率监测器模块由插入性能模拟器中的软件组件扩展来组成。
[0046]示例12可包括示例2至4的任一个的元件,其中虚拟功率监测器模块还包括包含动态组件功率模型和静态组件功率模型的至少一个的功率模型库,系统代理模块从功率模型库中选择至少一个组件功率模型。[〇〇47]示例13可包括示例1至4的任一个的元件,其中性能模拟器包括与系统代理模块进行交互的调试和剖析接口。
[0048]图14可包括示例13的元件,其中性能模拟器还包括至少控制虚拟平台的模拟的模拟应用程序接口。
[0049]示例15可包括示例1至4的任一个的元件,其中公式化平台功率模型的系统代理模块包括促进将组件功率模型插入平台功率模型中或者从平台功率模型中去除组件功率模型的系统代理模块。
[0050]示例16可包括示例1至4的任一个的元件,其中生成功率特性的系统代理模块包括用于执行下列操作的系统代理模块:至少接收来自性能模拟器的性能数据,以及基于性能数据利用平台功率模型来生成功率数据。
[0051]示例17可包括示例16的元件,其中至少接收性能数据的系统代理包括周期地对性能数据取样的系统代理。[〇〇52]示例18可包括示例16的元件,其中至少接收性能数据的系统代理包括在事件发生时对性能数据取样的系统代理。[〇〇53]按照示例19,提供有一种用于监测模拟系统中的功率的方法。该方法可包括至少接收来自性能模拟器的虚拟功率监测器模块中的虚拟平台数据,基于虚拟平台数据来确定至少一个组件功率模型,基于至少一个组件功率模型来公式化平台功率模型,以及基于平台功率模型来生成与虚拟平台对应的功率数据。[〇〇54] 示例20可包括示例19的元件,其中确定至少一个组件功率模型包括选择至少一个组件功率模型以对应于虚拟平台数据中的至少一个虚拟化组件。
[0055]示例21可包括示例20的元件,其中至少一个组件功率模型从虚拟功率监测器模块中的功率模型库中选择。
[0056]示例22可包括示例21的元件,其中功率模型库包括动态组件功率模型和静态组件功率模型的至少一个。[〇〇57]示例23可包括示例22的元件,其中与动态组件功率模型关联的功率数据在由性能模拟器对虚拟平台的模拟期间是可变的。[〇〇58]示例24可包括示例22至23的任一个的元件,其中与静态组件功率模型关联的功率数据在由性能模拟器对虚拟平台的模拟期间是基本上恒定的。[〇〇59]示例25可包括示例20至23的任一个的元件,其中至少一个组件功率模型从虚拟功率监测器模块中的功率模型库中选择,功率模型库包括动态组件功率模型和静态组件功率模型的至少一个。
[0060]示例26可包括示例19至23的任一个的元件,其中公式化平台功率模型包括促进将组件功率模型插入平台功率模型中或者从平台功率模型中去除组件功率模型。[0061 ]示例27可包括示例19至23中的任一个的元件,其中,生成功率特性包括:至少接收来自性能模拟器的虚拟功率监测器模块中的性能数据,以及利用平台功率模型基于性能数据来生成功率数据。[〇〇62]示例28可包括示例27的元件,其中至少接收性能数据包括周期地对性能数据取样。[〇〇63]示例29可包括示例27的元件,其中至少接收性能数据包括在事件发生时对性能数据取样。[〇〇64]按照示例30,提供有一种包括至少装置的系统,该系统布置成执行上述示例19至 29的任一个的方法。[〇〇65]按照示例31,提供有布置成执行上述示例19至29的任一个的方法的芯片组。
[0066]按照示例32,提供有包括多个指令的至少一个机器可读介质,指令响应于在计算装置上执行而使该计算装置执行按照上述示例19至29的任一个的方法。[〇〇67]按照示例33,提供有配置成与用于虚拟平台模拟的功率监测系统一起使用的至少一个装置,该装置布置成执行上述示例19至29的任一个的方法。
[0068]按照示例34,提供有一种用于监测模拟系统中的功率的系统,包括用于至少接收来自性能模拟器的虚拟功率监测器模块中的虚拟平台数据、用于基于虚拟平台数据来确定至少一个组件功率模型的部件、用于基于至少一个组件功率模型来公式化平台功率模型的部件以及用于基于平台功率模型来生成与虚拟平台对应的功率数据的部件。[〇〇69]示例35可包括示例34的元件,其中用于确定至少一个组件功率模型的部件包括用于选择至少一个组件功率模型以对应于虚拟平台数据中的至少一个虚拟化组件的部件。
[0070]示例36可包括示例35的元件,其中至少一个组件功率模型从虚拟功率监测器模块中的功率模型库中选择。[0071 ]示例37可包括示例36的元件,其中功率模型库包括动态组件功率模型和静态组件功率模型的至少一个。[〇〇72]示例38可包括示例34至37的任一个的元件,其中用于公式化平台功率模型的部件包括用于促进将组件功率模型插入平台功率模型中或者从平台功率模型中去除组件功率模型的部件。[〇〇73]示例39可包括示例34至37中的任一个的元件,其中,用于生成功率特性的部件包括用于至少接收来自性能模拟器的虚拟功率监测器模块中的性能数据的部件以及用于利用平台功率模型基于性能数据来生成功率数据的部件。[〇〇74]示例40可包括示例39的元件,其中用于至少接收性能数据的部件包括用于周期地对性能数据取样的部件。[〇〇75]本文已经采用的术语和表达用作描述而非限制性术语,并且在使用这类术语和表达时,不存在排除所示和所描述特征的任何等效物(或者它们的一部分)的意图,并且要认识到,在权利要求的范围之内,各种修改是可能的。因此,权利要求书意图涵盖所有这类等效物。
【主权项】
1.一种模拟系统,包括:与性能模拟器进行交互的虚拟功率监测器模块,所述虚拟功率监测器模块至少包括用 于执行下列操作的系统代理模块:至少接收来自所述性能模拟器的虚拟平台数据;基于所述虚拟平台数据来确定至少一个组件功率模型;基于所述至少一个组件功率模型来公式化平台功率模型;以及 基于所述平台功率模型来生成与所述虚拟平台对应的功率数据。2.如权利要求1所述的系统,其中,确定至少一个组件功率模型的所述系统代理模块包 括选择至少一个组件功率模型以对应于所述虚拟平台数据中的至少一个虚拟化组件的所 述系统代理模块。3.如权利要求2所述的系统,其中,所述虚拟功率监测器模块还包括功率模型库,所述 系统代理模块从所述功率模型库中选择所述至少一个组件功率模型。4.如权利要求3所述的系统,其中,所述功率模型库包括动态组件功率模型和静态组件 功率模型的至少一个。5.如权利要求4所述的系统,其中,所述虚拟功率监测器模块还包括促进所述功率特性 的呈现的功率数据呈现模块以及封装至少所述系统代理模块、功率模型库和功率数据呈现 模块的程序包装器。6.如权利要求5所述的系统,其中,虚拟功率监测器模块由插入所述性能模拟器中的软 件组件扩展来组成。7.如权利要求1所述的系统,其中,公式化平台功率模型的所述系统代理模块包括促进 将组件功率模型插入所述平台功率模型或者从所述平台功率模型中去除组件功率模型的 所述系统代理模块。8.如权利要求1所述的系统,其中,生成功率特性的所述系统代理模块包括用于执行 下列操作的所述系统代理模块:至少接收来自所述性能模拟器的性能数据;以及 利用所述平台功率模型基于所述性能数据来生成所述功率数据。9.如权利要求8所述的系统,其中,至少接收性能数据的所述系统代理包括周期地对所 述性能数据取样的所述系统代理。10.—种用于监测模拟系统中的功率的方法,包括:至少接收来自性能模拟器的虚拟功率监测器模块中的虚拟平台数据;基于所述虚拟平台数据来确定至少一个组件功率模型;基于所述至少一个组件功率模型来公式化平台功率模型;以及 基于所述平台功率模型来生成与所述虚拟平台对应的功率数据。11.如权利要求10所述的方法,其中,确定至少一个组件功率模型包括选择至少一个组 件功率模型选择以对应于所述虚拟平台数据中的至少一个虚拟化组件。12.如权利要求11所述的方法,其中,所述至少一个组件功率模型从所述虚拟功率监测 器模块中的功率模型库中选择。13.如权利要求12所述的方法,其中,所述功率模型库包括动态组件功率模型和静态组 件功率模型的至少一个。14.如权利要求10所述的方法,其中,公式化平台功率模型包括促进将组件功率模型插 入所述平台功率模型中或者从所述平台功率模型中去除组件功率模型。15.如权利要求10所述的方法,其中,生成功率特性包括:至少接收来自所述性能模拟器的所述虚拟功率监测器模块中的性能数据;以及 利用所述平台功率模型基于所述性能数据来生成所述功率数据。16.如权利要求15所述的方法,其中,至少接收性能数据包括周期地对所述性能数据取 样。17.—种包括至少装置的系统,所述系统布置成执行权利要求10至16中的任一项所述 的方法。18.—种布置成执行权利要求10至16中的任一项所述的方法的芯片组。19.包含多个指令的至少一种机器可读介质,所述指令响应于在计算装置上执行而使 所述计算装置执行如权利要求10至16中的任一项所述的方法。20.配置用于与用于虚拟平台模拟的功率监测系统一起使用的至少一种装置,所述装 置布置成执行权利要求10至16中的任一项所述的方法。21.—种具有执行权利要求10至16中的任一项所述的方法的部件的装置。
【文档编号】G06F1/28GK105980957SQ201580008563
【公开日】2016年9月28日
【申请日】2015年3月6日
【发明人】P.马拉尼, M.塔姆罕卡
【申请人】英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1