CN105917313A - 优化平台仿真资源消耗的方法和装置 - Google Patents

优化平台仿真资源消耗的方法和装置 Download PDF

Info

Publication number
CN105917313A
CN105917313A CN201380080678.9A CN201380080678A CN105917313A CN 105917313 A CN105917313 A CN 105917313A CN 201380080678 A CN201380080678 A CN 201380080678A CN 105917313 A CN105917313 A CN 105917313A
Authority
CN
China
Prior art keywords
utilization rate
emulation
component
platform
component model
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
CN201380080678.9A
Other languages
English (en)
Other versions
CN105917313B (zh
Inventor
P·马拉尼
M·塔姆罕卡
R·贾亚拉曼
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105917313A publication Critical patent/CN105917313A/zh
Application granted granted Critical
Publication of CN105917313B publication Critical patent/CN105917313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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 for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3442Recording 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 for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文公开了用于优化平台仿真资源消耗的方法、装置、系统和制品。示例性的装置包括仿真管理器,用于在平台仿真器上利用与平台的硬件组件相对应的组件模型启动仿真;利用率阈值监视器,用于基于被测试的软件应用引起的需求而识别与第一个组件模型相关联的利用率值;以及组件监视管理器,用于基于利用率值与利用率阈值的比较而将第一个组件模型附着到平台仿真器或从其分离。

Description

优化平台仿真资源消耗的方法和装置
技术领域
本公开整体上涉及硬件仿真,更具体地,涉及优化平台仿真资源消耗的方法和装置。
背景技术
近年来,软件开发者已面临开发运行在任何数量的不同硬件平台上的软件应用的挑战。软件开发者不能控制其客户将使用的硬件平台,但软件开发者能控制其代码、以及代码如何与给定目标平台的一个或多个独特的方面进行交互。然而,为确保软件应用如预期地运行,软件开发者必须在每个特定目标平台上测试软件应用。为了将购买执行软件应用的每个目标平台所涉及的硬件费用最小化,可使用系统仿真器对每个所关注的硬件平台进行仿真。
附图说明
图1是根据本公开的教导而构建的用于优化平台仿真资源消耗的仿真环境的示意图。
图2是根据本公开的教导而构建的示例性组件利用率表。
图3是图1的用于优化平台仿真资源消耗的示例性仿真代理。
图4是表示示例性机器可读指令的流程图,可执行该指令用于以与本公开的教导相一致的方式优化平台仿真资源消耗。
图5是可执行图4的指令以实现图1和图3的示例性仿真代理的示例性处理器平台的示意图。
具体实施方式
系统仿真涉及在软件环境下模拟硬件平台的行为。通常,系统仿真器包括软件组件,用于对于待仿真的系统中每个相应的硬件组件进行建模。硬件组件可包括但不限于高速缓存存储器装置、中央处理单元(CPU)、图形处理单元(GPU)、磁盘控制器、存储器控制器、外围组件互连(PCI)接口/控制器、通用异步接收器/发射器(UART)、北桥/南桥芯片组等。所关注的每个硬件组件在系统仿真器中均具有相关联的软件组件,在计算装置上执行时,软件组件仿真硬件组件的行为。因此,软件开发者不需要为了开发和/或测试将用于得到所关注的平台的软件应用的目的而购买实际的硬件平台。
虽然系统仿真器方便地为软件开发者节省了单独采购硬件所涉及的相当大的费用支出,但是随着硬件平台包括的需要被建模的单个组件更为复杂和/或数量更多,仿真持续时间会变慢。由于系统仿真器为建模目的而启用的每个软件组件消耗运行所述仿真器的主机的计算资源,为平台添加额外的软件组件自然会带来对主机计算装置更高的要求。因此,对于相对复杂的平台仿真工作,可能会延长仿真任务的持续时间。
系统仿真产生的结果可具有的精度与经由软件组件对相应的每个硬件组件建模的良好程度相称。精度被定义为仿真或估计的执行状态与在目标平台的实际硬件上的相应测量值之间的误差。另一方面,系统仿真效率被定义为完成仿真所消耗的时间的量(例如,仿真速度),其随着为提高精度而付出的努力的增加而增加。因此,本文所公开的示例性方法、系统、装置和/或制品在系统仿真器执行仿真时的精度和效率之间建立了平衡。
图1是根据本公开的教导而实现的用于优化(改善)平台仿真资源消耗的示例性仿真环境100的示意图。在图1所示的例子中,主计算机102包括用于运行主机操作系统(OS)104的硬件资源。示例性仿真引擎106(在本文中有时被称为“平台仿真器”)和示例性仿真代理108在示例性主机OS 104上运行,其中,示例性仿真引擎106包括与待仿真的平台相关联的任意数量的软件组件(在本文中有时被称为“仿真组件”)。示例性仿真引擎106的组件包括示例性CPU 110、示例性UART 112、示例性以太网控制器114、示例性存储器控制器116、示例性PCI控制器118、示例性PCI快速(PCIe)控制器120、示例性定时器122、示例性随机存取存储器(RAM)124、示例性硬盘126以及示例性只读存储器(ROM)128。在图1所示的例子中,仿真引擎106的组件反映了所关注的平台,而一个或多个可替代的所关注的平台可包括任何数量的另外的和/或备选的软件组件。
在运行中,示例性仿真代理108识别一组初始仿真组件,附着到仿真中。如本文所使用的,术语“附着”是指使一个或多个仿真组件能参与到一个或多个建模任务中,而术语“分离”是指在一个或多个建模任务中禁止一个或多个仿真组件的参与。通常而言,附着较多数量的仿真组件导致对底层计算资源(例如,主计算机102)的消耗相对较大,而分离一定数量的仿真组件会导致底层计算资源上的负荷的减少。可基于对于待仿真的目标应用程序和/或操作系统的检查来确定该组初始仿真组件。在图1所示的例子中,仿真引擎106包括待仿真的作为OS 130的Linux内核和目标程序132。
仿真开始后,示例性仿真代理108检查示例性目标程序132和/或OS 130所使用的各组件(例如,目标程序132和/或OS 130从一个或多个组件要求和/或以其他方式请求功能性),以识别相应的利用率值。在最初未将第一仿真组件附着到仿真中(或当前未附着到仿真中)、但后来被检测为针对阈值资源量(例如,时钟周期的阈值数量、阈值持续时间(毫秒))请求与第一仿真组件相关的功能性的情况下,则所请求的仿真组件被仿真代理108附着到仿真中。响应于识别阈值需求而附着示例性第一仿真组件的至少一个好处是将改善仿真的精度。另一方面,在第二仿真组件当前被附着到仿真中、但是被仿真代理108检测为未使用阈值资源量的情况下,则从仿真中移除未充分利用的仿真组件。响应于识别缺少阈值需求而移除示例性第二仿真组件的至少一个好处是减少示例性主计算机102所提供的底层资源的负荷,从而提高仿真速度。
图2示出了根据本公开的教导而构建的用于优化(改善)平台仿真资源消耗的示例性组件利用率表200。在图2所示的例子中,表200包括组件列202、利用率阈值列204以及运行时启动列206。如以下进一步详细描述的,示例性仿真代理108的利用率阈值监视器将仿真引擎106当前正在使用的每个仿真组件与仿真引擎106能够使用的每个仿真组件进行比较。换句话说,示例性利用率表200可生成仿真组件的完整列表,每个均表示仿真引擎106所需的实际硬件组件,而不管在仿真过程中目前是否正在使用这种组件。示例性OS 130和/或程序132运行过程中,一个或多个组件可在不同的时间以不同的量对所述仿真做出贡献,鉴于这种可能性,示例性利用率表200包括用于控制在何时将一个或多个仿真组件附着于示例性仿真引擎106或从其分离的值。
图2中的示例性组件列202列出了在仿真中软件(例如,图1中的示例性OS 130和/或程序132)执行能够需要的任何数目的硬件组件。在一些示例中,组件列202中的每个组件包括对应的高利用率阈值204A和低利用率阈值204B。在其他示例中,组件列202中的每个组件包括用于比较目的的单个利用率阈值。另外,在仿真开始(例如,在仿真活动的时间零点)时附着了特定的组件的情况下,则示例性运行时启动列206包括表示真的值(例如,二进制值“1”、术语“真(TRUE)”、术语“是(yes)”等)。另一方面,在仿真开始时避免附着特定的组件的情况下,则示例性运行时启动列206包括表示假的值(例如,二进制值“0”、术语“假(FALSE)”、术语“否(no)”等)。
在运行中,示例性仿真代理108监视在示例性仿真引擎106中仿真的平台执行期间示例性组件列202中的每个仿真组件的利用率值/需求。在第一仿真组件超过示例性高利用率阈值(例如,上限阈值)204A的情况下,则该相应的仿真组件被附着到示例性仿真引擎106,假设它尚未被附着。另一方面,在第一仿真组件低于示例性低利用率阈值(例如,下限阈值)204B的情况下,则该相应的仿真组件将从仿真中分离,假设它尚未与示例性仿真引擎106分离。
图3更详细地示出了示例性仿真代理108。在图3所示的例子中,仿真代理108包括仿真管理器302、组件识别器304、利用率阈值监视器306、组件监视管理器308以及任何数量的组件监视器M1、M2...、Mn,本文中统称为组件监视器310。组件监视器310的数量对应于由示例性仿真引擎106仿真的硬件组件的数量。例如,组件监视器M1可与示例性UART 112相关,并在整个仿真中监视其利用率量(例如,每单位时间活动的或所需的CPU周期的数目)。示例性组件监视管理器308在周期性的、非周期性的、按计划的和/或手动的基础上调用每个示例性组件监视器310,以识别每个相应的软件组件的利用率值。当软件组件超过或低于相应的利用率阈值时,示例性组件监视管理器308在仿真过程中将相应的组件模型附着至示例性仿真引擎106/从其分离。
示例性仿真管理器302启动仿真后,其确定时间量是否已超出培养与每个仿真的组件相关联的利用率信息。对于每个所关注的组件,示例性利用率阈值监视器306确定利用率值(例如,CPU周期、作为总仿真时间的比例/部分的利用率时间的百分比等)是否小于与所关注的组件相关联的利用率阈值。如上所述,利用率阈值可存储在图2的示例性组件利用率表200中。在所关注的特定组件的利用率值小于相应的阈值的情况下,示例性组件监视管理器308确定当前是否附着相应的所关注的组件。如上所述,在附着组件模型、但是未被仿真的一个或多个程序使用和/或以其他方式需求的情况下,则将组件模型维持在示例性仿真引擎106中会浪费本应能够被对所关注的平台能够建模的其余的组件使用的主计算机102的底层资源。在这样的情况下,示例性仿真管理器302暂停仿真,且示例性组件监视管理器302分离未充分利用的组件模型。
另一方面,在示例性利用率阈值监视器306确定所关注的组件的利用率值高于与所关注的组件相关联的利用率阈值的情况下,则组件监视管理器308确定组件模型目前是否被附着在仿真引擎106中。如果没有,则将所关注的组件模型附着到示例性仿真引擎106将会以更高的精度对仿真进行建模。示例性仿真管理器302中止正在运行的仿真,并且在重新启动仿真之前,示例性组件监视管理器308将组件模型附着到示例性仿真引擎106。
虽然在图1-图3中示出了图1和图3的仿真代理108的示例性实施方式,但是图1和图3中所示出的一个或多个元件、进程和/或装置可被组合、分割、重新设置、省略、删除和/或以任何其他方式实现。此外,图1和图3中的示例性仿真引擎106、示例性仿真管理器302、示例性组件识别器304、示例性利用率阈值监视器306、示例性组件监视管理器308、示例性组件监视器310,和/或,更一般地,示例性仿真代理108可由硬件、软件、固件和/或硬件、软件和/或固件的任何组合实现。因此,例如,图1和图3中的任何示例性仿真引擎106、示例性仿真管理器302、示例性组件识别器304、示例性利用率阈值监视器306、示例性组件监视管理器308、示例性组件监视器310,和/或,更一般地,示例性仿真代理108可由一个或多个仿真或数字电路、逻辑电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)实现。当阅读本专利的任何装置或系统权利要求来覆盖纯软件和/或固件实施方式,图1和图3中的示例性仿真引擎106、示例性仿真管理器302、示例性组件识别器304、示例性利用率阈值监视器306、示例性组件监视管理器308、示例性组件监视器310,和/或,更一般地,示例性仿真代理108中的至少一个在此被明确地限定为包括存储软件和/或固件的有形的计算机可读存储装置或存储盘,例如存储器、数字多功能盘(DVD)、压缩盘(CD)、蓝光盘等。再者,除了图1和图3中所示出的,或可替代的,图1和图3中的示例性仿真代理108可包括一个或多个元件、进程和/或装置,和/或可包括多于一个的任何的或所有的所示出的元件、进程和装置。
图4示出了表示用于实现图1和图3中的仿真代理108的示例性机器可读指令的流程图。在本示例中,机器可读指令包括由处理器执行的程序,所述处理器例如为以下结合图5所讨论的示例性处理器平台500中所示出的处理器512。程序可被实施为存储在有形的计算机可读存储介质上的软件,所述有形的计算机可读存储介质例如为CD-ROM、软盘、硬盘驱动器、数字多功能盘(DVD)、蓝光盘、或与处理器512相关联的存储器,但是可替代地,整个程序和/或其部分可由除处理器512以外的装置来执行和/或被实施为固件或专用硬件中。此外,虽然参照图4所示的流程图描述了示例性程序,但也可替代地使用其他多种方法实现示例性仿真代理108。例如,可改变块的执行顺序,和/或可改变、删除或组合所描述的一些块。
如上所述,图4的示例性过程可利用存储在有形的计算机可读存储介质上的编码指令(例如,计算机和/或机器可读指令)实现,所述有形的计算机可读存储介质例如为硬盘驱动器、闪速存储器、只读存储器(ROM)、压缩盘(CD)、数字多功能盘(DVD)、高速缓存、随机存取存储器(RAM)和/或以任何持续时间(例如,以较长的时间段、永久地、短时间、作为暂时缓冲、和/或作为信息的高速缓存)存储信息的任何其他存储装置或存储盘。如本文中所使用的,有形的计算机可读存储介质这一术语被明确地定义为包括任何类型的计算机可读存储装置和/或存储盘,并排除传播信号以及排除传输介质。如本文中所使用的,“有形的计算机可读存储介质”和“有形的机器可读存储介质”可互换使用。另外或可替代地,图4中的示例性进程可利用存储在非临时性计算机和/或机器可读介质上的编码指令(例如,计算机和/或机器可读指令)实现,所述非临时性计算机和/或机器可读介质例如为硬盘驱动器、闪速存储器、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或以任何持续时间(例如,以较长的时间段、永久地、短时间、作为暂时缓冲、和/或作为信息的高速缓存)存储信息的任何其他存储装置或存储盘。如本文中所使用的,非临时性计算机可读介质这一术语被明确定义为包括任何类型的计算机可读存储装置和/或存储盘,并排除传播信号、以及排除传输介质。如本文中所使用的,当在权利要求的前序部分中使用短语“至少”作为过渡词时,其与开放式术语“包括”的方式相同,是开放式的。
图4中的程序400开始于块402,其中,示例性组件识别器304检查和/或以其它方式分析示例性组件利用率表200,从而识别在示例性仿真引擎106执行的仿真期间待附着的初始仿真组件。如上所述,图2中的示例性组件利用率表200包括所关注的平台的各组件的列表。在组件在运行时启动列206中包括指示真(例如,“1”、“真”、“是”等)的情况下,则示例性组件监视管理器308将相应的组件附着到仿真引擎106。另一方面,在组件在运行时启动列206中包括表示指示假(例如,“0”、“假”、“否”等)的情况下,则示例性组件监视管理器308分离和/或以其他方式确认相应组件未包括在示例性仿真引擎106中。在一些示例中,示例性组件识别器304识别与给定的待仿真的所关注的平台相关联的所有硬件组件。基于所关注的平台的所识别的硬件组件,示例性利用率阈值监视器306生成具有针对每个组件模型的相应的利用率值的列表,如以上所描述的以及图2所示的。
在示例性组件监视管理器308配置示例性仿真引擎106以与示例性组件利用率表200(块402)相一致的方式附着和分离相应的组件之后,示例性仿真管理器302启动仿真(块404)。示例性仿真管理器302包括定时器,用于确定何时要对选定的所关注的平台的所有组件检查其相应的利用率值(块406)。例如,仿真管理器302可在阈值数目的CPU周期、阈值持续时间(例如,每500毫秒)之后,和/或响应于一个或多个仿真事件而执行所有组件的分析。仿真事件可包括但不限于被仿真的应用程序(例如,被仿真的OS 130,被仿真的程序132等)作出对先前未使用的组件的请求的情况。例如,响应于示例性以太网控制器116被所仿真的应用程序调用的第一种情形,示例性仿真管理器302可执行所有平台组件的分析,以确定与其相关联的一个或多个利用率值。
当示例性仿真管理器确定应检查平台组件(块406)时,示例性组件监视管理器308通过选择尚未被检查的任何数量的平台组件中的一个而开始组件分析迭代(块408)。如本文所使用的,组件分析迭代是指每检查周期内评估当前仿真平台的每一个组件(例如,运行Windows OS的x86 CPU)。在一些示例中,由于对仿真的整体性能的影响可忽略,一个或多个组件可不包括在分析迭代中。
在示例性组件监视管理器308选择尚未被检查的组件用于分析迭代(块408)后,示例性利用率阈值监视器306判断所关注的组件利用率值是否小于阈值,例如图2中的示例性组件利用率表200所创建的阈值(块410)。如果所关注的组件利用率值小于阈值(块410),则示例性组件监视管理器308判断所关注的组件当前是否被附着在仿真引擎106中(块412)。如果没有,则针对所关注的组件,示例性仿真引擎106已经被优化(改善),因为它既未被正在执行的应用程序请求,也不必消耗底层主计算机102的资源。在这种情况下,示例性组件监视管理器302确定是否还有所关注的平台的另外的组件未被检查(块414)。如果有,则控制返回到块408以选择另一个所关注的组件。
然而,在所关注的组件的利用率值小于与其相关的利用率阈值(块410)、并且该所关注的特定组件当前已被附着在仿真引擎106中(块412)的情况下,则示例性仿真管理器302中止仿真(块416)。当仿真中止和/或以其它方式被暂停时(块416),示例性组件监视管理器308从示例性仿真引擎106分离所关注的组件(块418)。分离未被仿真的一个或多个正在执行的应用程序请求和/或以其他方式需求的所关注的组件的结果是底层主计算机102无需为所述底层组件提供处理资源。因此,通过允许底层主计算机102将其资源贡献给仿真的应用程序当前所需的一个或多个其他组件,可以以更有效的方式进行仿真。在示例性组件监视管理器308分离不需要的组件并恢复仿真(块418)后,它确定是否还有所关注的平台的另外的组件未被检查其相应的利用率值(块414)。如果平台的所有组件均已被检查以确定其当前利用率值(块414),示例性仿真管理器302在允许启动另一迭代之前重置检查周期定时器(块420)。控制然后返回到块406,以确定何时应当开始另一组件的分析迭代。
在示例性利用率阈值监视器306检测出和/或以其他方式识别出所关注的组件的利用率值高于相应的阈值(块410)的情况下,则示例性组件监视管理器308确定所关注的组件当前是否被附着在示例性仿真引擎106中(块422)。如果所关注的组件当前已被附着(块422),则由于与从一个或多个正在执行的应用程序(例如,图1中的示例性OS 130和/或示例性程序132)对所述组件的一个或多个请求同时,组件处于活动状态,因此,示例性仿真引擎106被优化。然后控制前进到块414,其中,示例性组件监视管理器302确定所关注的平台的另外的组件是否未被检查。然而,如果组件监视管理器308确定所关注的组件当前未被附着到仿真引擎106(块422),则示例性仿真管理器302中止模拟(块424)。在所述仿真被中止和/或以其它方式被暂停(块424)时,示例性组件监视管理器308将所关注的组件附着到示例性仿真引擎106,并恢复仿真活动(块426)。因此,通过包含仿真环境106中正在执行的一个或多个程序所需的软件组件,所述仿真被进一步优化。
图5是能够执行图4中的指令以实现图1和图3中的仿真代理108的示例性处理器平台500的框图。处理器平台500可以是例如服务器、个人计算机、因特网设备、游戏控制台、机顶盒或任何其他类型的计算装置。
所示的例子中的处理器平台500包括处理器512。所示的例子中的处理器512是硬件。例如,可利用来自任何期望的家庭或制造商的一个或多个集成电路、逻辑电路、微处理器或控制器来实现处理器512。
所示的例子中的处理器512包括本地存储器513(例如,高速缓存)。所示的例子中的处理器512经由总线518与包括易失性存储器514和非易失性存储器516的主存储器进行通信。易失性存储器514可由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其它类型的随机存取存储器装置实现。非易失性存储器516可由闪存和/或任何其他期望的类型的存储器装置实现。对主存储器514、516的访问由存储器控制器控制。
所示的例子中的处理器平台500还包括接口电路520。接口电路520可由任何类型的接口标准实现,例如以太网接口、通用串行总线(USB)和/或PCI快速接口。
在所示的例子中,一个或多个输入装置522与接口电路520连接。输入装置522允许用户向处理器1012输入数据和指令。所述输入装置可由例如键盘、按钮、鼠标、触摸屏、跟踪板、跟踪球和/或语音识别系统实现。
一个或多个输出装置524也与所示例子中的接口电路520连接。输出装置524例如可通过显示装置(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器、阴极射线管显示器(CRT)、触摸屏、触觉输出装置、发光二极管(LED)、打印机和/或扬声器)实现。因此,所示的例子中的接口电路520通常包括图形驱动卡、图形驱动芯片或图形驱动处理器。
所示例子中的接口电路520还包括经由网络526(例如,以太网连接、数字用户线(DSL)、电话线、同轴电缆、蜂窝电话系统等)方便与外部机器(例如,任何种类的计算装置)进行数据交换的通信装置,例如发射器、接收器、收发器、调制解调器和/或网络接口卡。
所示的例子中的处理器平台500还包括用于存储软件和/或数据的一个或多个大容量存储装置528。这种大容量存储装置528的例子包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光盘驱动器、RAID系统和数字多功能盘(DVD)驱动器。
图4中的编码指令532可存储在大容量存储装置528、易失性存储器514、非易失性存储器516和/或可移动有形计算机可读存储介质(如CD或DVD)中。
从前述可以理解,以上所公开的方法、装置、系统和制品减少和/或消除了主计算平台在执行对正在其上运行的目标平台和应用程序的仿真时的计算浪费。虽然,对于被测试的软件可在实际的平台硬件上如何执行,包括所关注的目标平台中每个和每一个相应的硬件组件的软件组件模型可产生相对准确的仿真,但是在正在执行的软件实际上不需要一个或多个软件组件时,在整个仿真任务中包括所有软件组件模型是浪费的。因此,本文所公开的示例性方法、装置、系统和/或制品针对需要软件组件模型作出贡献的情况,优化(改善)了软件组件模型的应用程序,同时在正在执行的软件不需要其他软件组件模型的贡献时,去除其他软件组件模型。
以下涉及进一步的示例。用于优化平台仿真资源消耗的示例性装置包括仿真管理器,用于在平台仿真器上利用与平台的硬件组件相对应的组件模型启动仿真;利用率阈值监视器,用于基于被测试的软件应用引起的需求而识别与第一个组件模型相关联的利用率值;以及组件监视管理器,用于基于利用率阈值将第一个组件模型附着到平台仿真器或从其分离。所公开的其他示例性装置包括利用率阈值监视器,用于生成包含组件模型和相应的利用率阈值的组件利用率表。所公开的又一些其他示例性装置包括组件利用率阈值监视器,用于跟踪高利用率阈值和低利用率阈值,其中,所述组件利用率表用于识别在仿真开始时是否附着或分离一些组件模型。所公开的一些示例性装置包括利用率阈值监视器,其调用相应的组件监视器来识别利用率值,其中,在周期性的、非周期性的、按计划的或手动中的至少一种的基础上调用所述组件监视器。所公开的其他示例性装置包括组件监视管理器,用于在相应的利用率值超过利用率阈值、并且第一个组件模型当前未被附着到平台仿真器时,附着所述第一个组件模型。在一些示例中,本文所公开的装置包括组件监视管理器,用于在相应的利用率值低于利用率阈值、并且第一个组件模型当前被附着到平台仿真器时,分离所述第一个组件模型。所公开的又一个其他装置包括组件监视管理器,用于在附着和/或分离所述第一个组件模型之前中止仿真,并在附着和/或分离所述第一个组件模型之后重新启动所述仿真。所公开的其他装置包括被测试的软件应用,该软件应用包含操作系统或应用程序中的至少一个。本文所公开的示例进一步包括具有上限阈值或下限阈值中的至少一个的利用率阈值,以及用于平台的每个硬件组件的相应组件监视器,用于在周期性的、非周期性的、按计划的或手动中的至少一种的基础上来识别利用率值。
用于优化平台仿真资源消耗的示例性方法包括利用与平台的硬件组件相对应的组件模型在平台仿真器上启动仿真,基于被测试的软件应用所引起的需求而识别与第一个组件模型相关联的利用率值,以及基于利用率阈值而将所述第一个组件模型附着到平台仿真器或从其分离。所公开的其它示例性方法包括生成包含组件模型和相应的利用率阈值的组件利用率表,其可进一步包括跟踪高利用率阈值和低利用率阈值和/或识别在仿真开始时组件模型中的一些是否将被附着或分离。所公开的一些示例性方法包括调用相应的组件监视器来识别利用率值,其中在周期性的、非周期性的、按计划的或手动的至少一种的基础上调用所述组件监视器。本文所公开又一些其它的示例性方法包括在相应的利用率值超过利用率阈值、并且第一个组件模型当前未被附着到平台仿真器时,附着所述第一个组件模型。本文所公开的一些示例性方法包括在相应的利用率值低于利用率阈值、并且第一个组件模型当前附着到平台仿真器时,分离所述第一个组件模型。本文所公开的又一些其他方法在附着和/或分离所述第一个组件模型之前中止仿真,并在附着和/或分离所述第一个组件模型之后重新启动所述仿真。本文所公开的其他示例性方法包括对被测试的软件应用的仿真,例如,操作系统或应用程序中的至少一个。所公开的示例性方法还包括具有上限阈值或下限阈值中的至少一个的利用率阈值,以及在周期性的、非周期性的、按计划的或手动的至少一种的基础上识别所述利用率值。
所公开的示例性计算机可读存储介质包括利用与平台的硬件组件相对应的组件模型在平台仿真器上启动仿真,基于被测试的软件应用引起的需求而识别与第一个组件模型相关联的利用率值,以及基于利用率阈值而将所述第一个组件模型附着到平台仿真器或从其分离。所公开的一些示例性指令包括生成包含组件模型和相应的利用率阈值的组件利用率表,其可跟踪高利用率阈值和低利用率阈值。所公开的又一些其它示例性指令包括识别在仿真开始时组件模型中的一些是否将被附着或分离。所公开的一些示例性指令包括调用相应的组件监视器来识别利用率值,其中在周期性的、非周期性的、按计划的或手动的至少一种的基础上调用相应的组件监视器。所公开的其他示例性指令包括在相应的利用率值超过利用率阈值、并且第一个组件模型当前未被附着到平台仿真器时,附着所述第一个组件模型。所公开的又一些其它示例性指令包括在相应的利用率值低于利用率阈值、并且第一个组件模型当前被附着到平台仿真器时,分离所述第一个组件模型。本文所公开的其它示例包括指令,用于在附着和/或分离所述第一个组件模型之前中止仿真,并在附着和/或分离所述第一个组件模型之后重新启动所述仿真。在本文所公开的一些示例中,所述指令包括对操作系统或应用程序中的至少一个进行仿真,应用所述利用率阈值作为上限阈值或下限阈值中的至少一个,和/或在周期性的、非周期性的、按计划的或手动的至少一种的基础上确定所述利用率值。
所公开的用于优化平台仿真资源消耗的示例性系统包括用于利用与平台的硬件组件相对应的组件模型在平台仿真器上启动仿真的装置,用于基于被测试的软件应用引起的需求而识别与第一个组件模型相关联的利用率值的装置,以及用于基于利用率阈值而将所述第一个组件模型附着到平台仿真器或从其分离的装置。一些所公开的系统包括用于生成包含组件模型和相应的利用率阈值的组件利用率表的装置,其可进一步包括用于跟踪高利用率阈值和低利用率阈值的装置和/或用于识别在仿真开始时组件模型中的一些是否将被附着或分离的装置。所公开的又一些其它的示例性系统包括用于调用相应的组件监视器来识别利用率值的装置,其进一步包括用于在周期性的、非周期性的、按计划的或手动的至少一种的基础上调用所述组件监视器的装置。所公开的一些示例性系统包括用于在相应的利用率值超过利用率阈值、并且第一个组件模型当前未附着到平台仿真器时,附着所述第一个组件模型的装置。本文所公开的其他示例性系统包括用于在相应的利用率值低于利用率阈值、并且第一个组件模型当前被附着到平台仿真器时,分离所述第一个组件模型的装置。在其他示例中,所公开系统包括用于在附着和/或分离所述第一个组件模型之前中止仿真,并在附着和/或分离所述第一个组件模型之后重新启动所述仿真的装置。所公开的又一些其他示例性系统包括用于对操作系统或应用程序中的至少一个进行仿真的装置。
虽然本文公开了一些示例性的方法、装置和制品,但本专利覆盖的范围并不限于此。相反,本专利覆盖相当地落入在本专利的权利要求书范围内的所有方法、装置和制品。

Claims (25)

1.一种用于优化平台仿真器的装置,包括:
仿真管理器,用于在平台仿真器上利用与所述平台的硬件组件相对应的组件模型启动仿真;
利用率阈值监视器,用于基于被测试的软件应用所引起的需求而识别与第一个组件模型相关联的利用率值;以及
组件监视管理器,用于基于利用率值与利用率阈值的比较而将所述第一个组件模型附着到所述平台仿真器或从其分离。
2.如权利要求1所述的装置,其中,所述利用率阈值监视器用于生成包含组件模型和相应的利用率阈值的组件利用率表。
3.如权利要求2所述的装置,其中,所述组件利用率表用于识别在仿真开始时是否附着或分离一些组件模型。
4.如权利要求1所述的装置,其中,所述利用率阈值监视器用于调用相应的组件监视器来识别所述利用率值。
5.如权利要求1所述的装置,其中,所述组件监视管理器用于在以下情况下附着所述第一个组件模型:
所述利用率值超过所述利用率阈值;且
所述第一个组件模型当前未被附着到所述平台仿真器。
6.如权利要求1所述的装置,其中,所述所述组件监视管理器用于在以下情况下分离所述第一个组件模型:
所述利用率值低于所述利用率阈值;且
所述第一个组件模型当前被附着到所述平台仿真器。
7.如权利要求1所述的装置,其中,所述组件监视管理器用于在附着和/或分离所述第一个组件模型之前中止仿真。
8.如权利要求7所述的装置,其中,所述组件监视管理器用于在附着和/或分离所述第一个组件模型之后重新启动所述仿真。
9.如权利要求2、4、5或6所述的装置,其中,所述利用率阈值包括上限阈值或下限阈值中的至少一个。
10.如权利要求2、5或6所述的装置,进一步包括用于平台的每个硬件组件的相应组件监视器,用于在周期性的、非周期性的、按计划的或手动的至少一种的基础上来识别所述利用率值。
11.一种用于优化平台仿真器的方法,包括:
利用与平台的硬件组件相对应的组件模型在平台仿真器上启动仿真;
基于被测试的软件应用所引起的需求而识别与第一个组件模型相关联的利用率值;以及
基于所述利用率值与利用率阈值的比较而将所述第一个组件模型附着到所述平台仿真器或从其分离。
12.如权利要求11所述的方法,进一步包括生成包含组件模型和相应的利用率阈值的组件利用率表。
13.如权利要求12所述的方法,进一步包括识别在仿真开始时是否附着或分离一些组件模型。
14.如权利要求11所述的方法,进一步包括调用相应的组件监视器来识别利用率值。
15.如权利要求11所述的方法,进一步包括在以下情况下附着所述第一个组件模型:
所述利用率值超过所述利用率阈值;且
所述第一个组件模型当前未被附着到所述平台仿真器。
16.如权利要求11所述的方法,进一步包括在以下情况下分离所述第一个组件模型:
所述利用率值低于所述利用率阈值;且
所述第一个组件模型当前被附着到所述平台仿真器。
17.如权利要求11所述的方法,进一步包括在附着和/或分离所述第一个组件模型之前中止仿真。
18.如权利要求17所述的方法,进一步包括在附着和/或分离所述第一个组件模型之后重新启动所述仿真。
19.如权利要求12、14、15或16所述的方法,其中,所述利用率阈值包括上限阈值或下限阈值中的至少一个。
20.如权利要求12、15或16所述的方法,进一步包括在周期性的、非周期性的、按计划的或手动的至少一种的基础上来识别利用率值。
21.一种存储有指令的计算机可读存储介质,所述指令被执行时,使机器用于至少:
利用与平台的硬件组件相对应的组件模型在平台仿真器上启动仿真;
基于被测试的软件应用所引起的需求而识别与第一个组件模型相关联的利用率值;以及
基于所述利用率值与利用率阈值的比较而将所述第一个组件模型附着到所述平台仿真器或从其分离。
22.如权利要求21所述的计算机可读存储介质,进一步包括指令,所述指令被执行时,使机器生成包含组件模型和相应的利用率阈值的组件利用率表。
23.如权利要求22所述的计算机可读存储介质,进一步包括指令,所述指令被执行时,使机器追踪高利用率阈值和低利用率阈值。
24.如权利要求21所述的计算机可读存储介质,进一步包括指令,所述指令被执行时,使机器调用相应的组件监视器来识别利用率值。
25.一种用于优化平台仿真资源消耗的系统,包括:
用于利用与平台的硬件组件相对应的组件模型在平台仿真器上启动仿真的装置;
用于基于被测试的软件应用所引起的需求而识别与第一个组件模型相关联的利用率值的装置;以及
用于基于所述利用率值与利用率阈值的比较而将所述第一个组件模型附着到平台仿真器或从其分离的装置。
CN201380080678.9A 2013-12-02 2013-12-02 优化平台仿真资源消耗的方法和装置 Active CN105917313B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/072571 WO2015084297A1 (en) 2013-12-02 2013-12-02 Methods and apparatus to optimize platform simulation resource consumption

Publications (2)

Publication Number Publication Date
CN105917313A true CN105917313A (zh) 2016-08-31
CN105917313B CN105917313B (zh) 2021-01-05

Family

ID=53273869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080678.9A Active CN105917313B (zh) 2013-12-02 2013-12-02 优化平台仿真资源消耗的方法和装置

Country Status (4)

Country Link
US (1) US20160203070A1 (zh)
EP (1) EP3077910B1 (zh)
CN (1) CN105917313B (zh)
WO (1) WO2015084297A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117135345A (zh) * 2023-10-19 2023-11-28 芯动微电子科技(武汉)有限公司 一种图像信号处理的仿真验证方法和装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261648A1 (en) 2014-03-13 2015-09-17 Parth Malani Power monitoring system for virtual platform simulation
EP3265934A1 (en) * 2015-03-05 2018-01-10 The MathWorks, Inc. Conditional-based duration logic
GB2556572A (en) 2015-09-04 2018-05-30 Halliburton Energy Services Inc Time-to-finish simulation forecaster

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
CN101216710A (zh) * 2007-12-28 2008-07-09 东南大学 一种由计算机实现的自适应选择动态生产调度控制系统
CN101278293A (zh) * 2005-09-21 2008-10-01 英特尔公司 多处理器系统的性能仿真
US20090024381A1 (en) * 2007-07-20 2009-01-22 Fujitsu Limited Simulation device for co-verifying hardware and software
US7558719B1 (en) * 2005-04-14 2009-07-07 Xilinx, Inc. System and method for runtime analysis of system models for variable fidelity performance analysis
CN102171655A (zh) * 2008-12-29 2011-08-31 英特尔公司 复合设备仿真
CN102812439A (zh) * 2010-03-25 2012-12-05 国际商业机器公司 多处理器计算机系统中的功率管理

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069204B1 (en) * 2000-09-28 2006-06-27 Cadence Design System, Inc. Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
US7243059B2 (en) * 2003-04-24 2007-07-10 International Business Machines Corporation Simulation of hardware based on smart buffer objects
US7793269B2 (en) * 2005-02-15 2010-09-07 Ebay Inc. Parallel software testing based on a normalized configuration
WO2006093762A1 (en) * 2005-02-25 2006-09-08 Coware, Inc. Computer platform simulation
US7996204B2 (en) 2007-04-23 2011-08-09 Microsoft Corporation Simulation using resource models
EP2350829B1 (en) * 2008-10-22 2019-04-10 6fusion USA Inc. Method and system for determining computer resource usage in utility computing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US7558719B1 (en) * 2005-04-14 2009-07-07 Xilinx, Inc. System and method for runtime analysis of system models for variable fidelity performance analysis
CN101278293A (zh) * 2005-09-21 2008-10-01 英特尔公司 多处理器系统的性能仿真
US20090024381A1 (en) * 2007-07-20 2009-01-22 Fujitsu Limited Simulation device for co-verifying hardware and software
CN101216710A (zh) * 2007-12-28 2008-07-09 东南大学 一种由计算机实现的自适应选择动态生产调度控制系统
CN102171655A (zh) * 2008-12-29 2011-08-31 英特尔公司 复合设备仿真
CN102812439A (zh) * 2010-03-25 2012-12-05 国际商业机器公司 多处理器计算机系统中的功率管理

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117135345A (zh) * 2023-10-19 2023-11-28 芯动微电子科技(武汉)有限公司 一种图像信号处理的仿真验证方法和装置
CN117135345B (zh) * 2023-10-19 2024-01-02 芯动微电子科技(武汉)有限公司 一种图像信号处理的仿真验证方法和装置

Also Published As

Publication number Publication date
EP3077910A1 (en) 2016-10-12
WO2015084297A1 (en) 2015-06-11
CN105917313B (zh) 2021-01-05
EP3077910B1 (en) 2018-07-11
US20160203070A1 (en) 2016-07-14
EP3077910A4 (en) 2017-06-14

Similar Documents

Publication Publication Date Title
EP3754496B1 (en) Data processing method and related products
US20220391771A1 (en) Method, apparatus, and computer device and storage medium for distributed training of machine learning model
US11847554B2 (en) Data processing method and related products
US11094008B2 (en) Debt resolution planning platform for accelerating charge off
US10877632B2 (en) Performing an action based on user interaction data
CN103201719B (zh) 虚拟化计算环境中的设备仿真
US11429434B2 (en) Elastic execution of machine learning workloads using application based profiling
US8140317B2 (en) Device simulation method and system
US11677877B2 (en) Utilizing machine learning with call histories to determine support queue positions for support calls
US11341034B2 (en) Analysis of verification parameters for training reduction
US20200074539A1 (en) Debt resolution planning platform
CN105917313A (zh) 优化平台仿真资源消耗的方法和装置
CN113515382A (zh) 云资源的分配方法、装置、电子设备及程序产品
US9098652B2 (en) Partitioning and parallel processing of a virtual prototype simulation of a hardware design
Panneerselvam et al. An approach to optimise resource provision with energy-awareness in datacentres by combating task heterogeneity
CN112699046A (zh) 应用程序测试方法及装置、电子设备和存储介质
US11494691B2 (en) Systems and methods for accelerating model training in machine learning
Hauser et al. Predictability of resource intensive big data and hpc jobs in cloud data centres
CN112242959B (zh) 微服务限流控制方法、装置、设备及计算机存储介质
Lu Pragmatic approaches for timing analysis of real-time embedded systems
Kannan Enabling fairness in cloud computing infrastructures
Svorobej et al. Preliminary results from optimisation models validation and experimentation: project deliverable D6. 2
CN112667516A (zh) 一种安卓多机型自动化测试系统和方法
Jung Designing Distribution of Computations for Mobile Cloud Computing Systems
CN111274109A (zh) 一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统

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