动态频率调整的制作方法与工艺

文档序号:12005964阅读:187来源:国知局
动态频率调整的制作方法与工艺
本发明总体上涉及微处理器,尤其涉及微处理器中的动态频率调整。

背景技术:
在今天的市场中,对使用较少功率的高性能计算设备有需求。一个实例是移动设备,其可通过运行来关闭用于听音乐、浏览网页或者看电影的电池电源。然而,新的高性能硬件解决方案可能比前一代方案耗费更多功率。出现的片上系统(SoC)和三维集成电路(“3DIC”)设计尤其是这样。因而,当设计新的计算设备时,用功率限制去平衡期望的性能会是有帮助的。硬件部件(例如CPU)可动态改变它们的频率以平衡性能和功耗。以低频运行可以降低功耗但是以牺牲性能为代价,而以高频运行可提高性能但是消耗较多功率。这种动态调整通常称为动态频率调整(“DFS”)或者动态电压和频率调整(“DVFS”)。

技术实现要素:
为了解决现有技术中所存在的问题,根据本发明的一个方面,提供了一种具有被编程以执行进程的处理器的计算机,包括:处理单元仿真器;至少一个硬件部件仿真器;系统总线仿真器,与所述处理单元仿真器和所述至少一个硬件部件仿真器通信;以及总线监控单元(BMU),被配置成监控所述处理单元仿真器和所述至少一个硬件部件仿真器之间的通信量,所述BMU还被配置成在非暂时性计算机可读存储介质中记录总线使用数据,其中所述总线使用数据包括交易时间,所述交易时间表示所述至少一个硬件部件仿真器花费在处理任务上的时间。在可选实施例中,所述处理单元仿真器是被配置成仿真硬件处理器的指令集仿真器(ISS)。在可选实施例中,所述BMU被配置成在所述非暂时性计算机可读存储介质中记录多个交易时间,其中每一个交易时间都与一个硬件部件仿真器关联。在可选实施例中,所述计算机环境仿真器基于所述交易时间周期性调节所述处理单元仿真器的频率。在可选实施例中,所述计算机环境仿真器是硬件系统的电子系统级(ESL)设计。在可选实施例中,在交易级模型(TLM)中具体化所述ESL设计。在可选实施例中,所述系统总线仿真器是配置成将有效载荷从TLM发起端端传输到TLM目标端的TLM总线。在可选实施例中,所述硬件系统的所述ESL设计是片上系统(SoC)的设计。在可选实施例中,所述处理器被配置成将总线使用数据写入存储在所述非暂时性计算机可读存储介质上的数据库。根据本发明的另一个方面,还提供了一种方法,包括:为运行在计算机仿真器上的多个应用任务确定总运行时间;基于所述应用任务花费在利用至少一个硬件部件仿真器上的时间确定第一交易时间,所述硬件部件仿真器不是处理单元仿真器;根据所述总运行时间和所述第一交易时间计算第二交易时间;根据所述第二交易时间、所述第一交易时间以及总交易时间确定是否调节所述处理单元仿真器的频率;以及调节所述处理单元仿真器的频率。在可选实施例中,确定所述第一交易时间进一步包括以下步骤:针对从发起端设备传送到目标端设备的第一有效载荷监控系统总线仿真器;接收来自所述目标端设备的第二有效载荷,其中所述第二有效载荷包含表示所述目标端设备花费在处理所述第一有效载荷上的时间的交易时间;将所述交易时间存储到存储器中;根据存储在所述存储器中的所述交易时间计算所述第一交易时间。在可选实施例中,确定所述第一交易时间进一步包括以下步骤:针对从发起端设备传送到目标端设备的第一有效载荷监控系统总线仿真器;记录所述第一有效载荷传送到存储器中的时间;接收来自所述目标端设备的第二有效载荷;计算所述第一有效载荷的提交时间和所述第二有效载荷的接收时间的差值;以及将所述差值作为所述第一交易时间存储在存储器中。在可选实施例中,基于所述第二交易时间和所述总交易时间之间的比值调节所述频率。在可选实施例中,所述比值被用户定义的数值偏移。在可选实施例中,如果当前频率相对于所述比值为低,则提高所述频率。在可选实施例中,如果当前频率相对于所述比值为高,则降低所述频率。根据本发明的又一个方面,提供了一种被编码有程序代码的非暂时性机器可读存储介质,当所述程序代码被处理器执行时,所述处理器执行包括以下步骤的方法:建立被配置成仿真硬件环境的计算机仿真器,其中所述计算机仿真器包括至少一个高频硬件部件仿真器和至少一个低频硬件部件仿真器;在所述计算机仿真器上运行至少一个计算机任务;以及基于低频硬件部件仿真器花费在处理计算机任务上的时间来调节与高频硬件部件仿真器关联的仿真功率水平。在可选实施例中,所述至少一个高频硬件部件仿真器是被配置成仿真硬件处理器的指令集仿真器(ISS)。在可选实施例中,所述计算机仿真器是硬件环境的电子系统级(ESL)设计。附图说明图1是通用计算设备被编程有软件以形成负责电子系统级虚拟环境的特定目的工具的一个实例的框图。图2是可在电子系统级仿真而作为虚拟环境的硬件平台图。图3描绘了在虚拟环境下运行的多个计算机任务的状态图。图4是用于动态改变虚拟部件的虚拟频率的方法。图5是设计成便于动态调节虚拟部件频率的虚拟平台的交易级模型。图6是示范交易级模型中动态频率调整的流程图。图7示出了策略实施的一个实例。具体实施例结合被视为整个书面描述一部分的附图阅读本发明的示例性实施例。所描述的实施例包括在高频硬件部件中的动态频率调整,以及具体地在虚拟环境中进行频率调整分析。工程师还可能发现渴望设计出能够动态改变他们硬件部件(例如微处理器或者其他具有嵌入式处理器的装置)的频率的计算机系统。频率调整也称为动态频率调整(“DFS”)或者动态电压和频率调整(“DVFS”)。在各部件是轻负载或者没有负载时,降低部件的频率的结果是可以节能。令人能期望的是,基于作为整体的系统趋势而不是基于单一应用的行为来调整该频率。这样的调整使得系统动态了解新的功率分布,预期未来的性能需求,并因此调整频率或者频率-电压组合。例如,在系统运行多个应用过程中,一些任务可以为I/O密集型而其他任务是CPU密集型。如果大多数或者所有任务是受I/O限制的(I/Obound),CPU可以以低频运行以在基本上不影响总系统系能的情况下保存功率。相反,如果大多数或者所有任务是受CPU限制的(CPUbound),CPU可以以高频运行以提高性能。如果任务是混合型的,使得一些任务是CPU密集型而其他任务是I/O密集型,CPU可以以高频和低频之间的一些频率以平衡功耗和性能。在一些实施例中,动态频率调整包括关于具体应用怎样运行的先验知识。例如,一个应用可首先执行I/O操作,并因而可指示CPU降低其频率。然而,如果CPU密集型的第二应用启动,则新的应用必须请求CPU相应地调节频率。因此,系统实时调节其本身而不预测未来性能。这导致为具体应用优化而不是为作为整体的系统优化的调节。尽管功率分析(例如,DFS分析)通常在寄存器传输级(“RTL”)执行,然而在电子系统级执行功率分析可能是有益的。RTL可能执行比较缓慢,因而在该级的分析可能需要复杂的计算、估算以及其他快捷方法。另外,如果在RTL层发现功率问题,修改设计可能会困难、耗时和成本昂贵。ESL为系统设计提供了虚拟环境。虚拟平台可简化功率分析并且可提高设计修改的速度。例如,在一些实施例中,ESL允许设计的系统以每秒百万周数(即频率)工作。较高的周数可使工程师能在不需进行复杂的计算和估算的情况下观察系统功耗和性能影响。这可以降低人为误差和不确定性的数量。该速度还允许多次仿真迭代以验证设计中的成功或者缺陷。如果要进行设计修改,可通过程序来实现。另外或者可选地,ESL层的设计允许基本量的数据被收集和存储以用于未来分析或者对比。图1示出了能够处理软件的一般计算机系统10的一个实例,在该例子中计算机系统10被编程有软件以形成负责ESL虚拟环境的特定目的工具。如图1所示,在一些实施例中,计算设备10包括一个或者多个处理器,例如,处理器4。处理器4可以为任何中央处理器单元(“CPU”)、微处理器、微控制器或者用于执行指令的计算设备或者电路,并且其连接至通信基础设施6,例如,通信总线、交叉线(cross-overbar)或者网络。下面基于该计算设备10描述各种软件控制的实施例。在一些实施例中,计算设备10包括显示接口8,其转发来自通信基础设施6(或者来自未示出的帧缓冲存储器)的图形、文本以及其他数据,以在显示器或者显示单元11上显示。计算机系统还包括主存储器12(例如,随机存取存储器(RAM)),以及可选地包括辅助存储器14。在一些实施例中,辅助存储器14包括多个持久存储器,例如,硬盘驱动器16和/或可移动存储驱动器18(如闪存驱动器或者光学驱动器等)。可移动存储驱动器18从可移动存储单元20读取数据和/或将数据写入可移动存储单元20。可移动存储单元20代表可由可移动存储驱动器18读取或者写入可移动存储驱动器18的闪存驱动器,光盘等。在一些实施例中,计算设备10还包括一个或者多个通信接口26,这使得软件和数据能在计算设备10和外部设备(例如,主机或者服务器)之间传送。一个或者多个通信接口26的实例包括但不限于调制解调器、网络接口(例如,以太网卡或者无线网卡)、通讯端口、PC机内存卡国际联合会(PersonalComputerMemoryCardInternationalAssociation,PCMCIA)插槽和卡,一个或者多个个人组件互连高速(PersonalComponentInterconnectExpress,PCIExpress)插槽和卡,或者它们的任何组合。经由通信接口26传送的软件和数据可以是信号形式,其可是电子、电磁、光学或者其他能够被通信接口接收的信号。这些信号通过通信路径或者信道提供给通信接口26。可以使用电线或者电缆、光纤、电话线、蜂窝链路、射频(“RF”)链路或者其他通信信道实现所述信道。图2是可在ELS仿真的物理平台图。物理平台100可为SoC或者3DIC。平台包括由系统处理的多个应用任务101。另外,平台100包括处理器102以及多个其他硬件部件。在一些实施例中,硬件部件包括显卡104(“GFX”)、以太网105、直接存储器存取106(“DMA”)、液晶显示器(“LCD”)、闪存108、随机存取存储器(“RAM”)109以及L2缓存器111。硬件部件可进一步分为高频部件112和低频部件113。在一些实施例中,处理器102和其他硬件部件通过系统总线114相互通信。物理平台100可在电子系统级(ESL)仿真。这种仿真可在任何用软件编程以形成特定目的处理器的通用计算机系统上运行,例如图1中描绘的系统。例如,在一些实施例中,图2中描绘的处理器101体现为指令集仿真器(“ISS”)。其他硬件部件中的每一个都可类似地体现在虚拟部件中。这些虚拟部件可由处理器10组成,处理器10被配置有计算机软件以仿真物理硬件部件104-108的功能。另外,应用任务101可运行在独立于下层计算机系统的ESL仿真上。也就是,应用任务101可被完全包括在内,并且不会意识到它们在虚拟的机器上运行而不是在物理机器上运行。在一些实施例中,应用任务101被仿真应用任务。在这种实施例中,任务的各个方面(例如,交易目的或者处理时间)可被预先确定。用户可输入这些方面,或者它们可由计算机生成。例如,想要仿真视频游戏的用户可将仿真的应用任务设置为CPU或者GFX密集型。同样地,用户可通过指定一个或者多个任务来仿真数据存储到闪存中从而模拟I/O交易。这种实施例使得在不需运行实际应用的情况下进行功率和频率分析。例如,每个仿真任务或者交易都可根据预先确定的概率分布生成、并加入到系统以及被分配交易时间。所述任务在其交易时间期间还可先占用处理器和/或系统总线或者其他资源。因此,在不执行信号级的每个任务的所有步骤的情况下,可监控任务经历的排队延迟以及资源使用。图3描绘了在虚拟环境(例如,图2中描绘的物理平台的ESL仿真)上运行的多个计算机任务的状态图。尽管图3的实例中仅示出了三个任务,然而其他实施例具有任何数量的任务。任务DFS是被配置成执行图3中描绘的方法的应用任务。任务A和任务B可以为任何其他真实或者仿真的应用任务。时间沿x轴表示,x轴被分成时间片t0-t6。尽管图3的状态图在超过t6后没有继续,然而任务可运行直到终止,因此可存在无限制数量的时间片。图4是动态改变虚拟部件频率的计算机实现方法的一个实例流程图。所述方法结合图3讨论并且可通过任务DFS实现。为了进行讨论,假设图4中公开的方法正在改变虚拟处理器的频率。在一些实施例中,其他虚拟部件也可使它们各自的频率改变。在本实例中,改变是虚拟频率变化,而不是下层的物理处理器的实际频率变化。也就是,将频率变化作为仿真的输入处理。在步骤300,确定多个应用任务的总运行时间。在一些实施例中,运行时间是自虚拟处理器的频率最后调节以后的时间。在图3中,第一总运行时间表示为ΔT0并且第二总运行时间由ΔT1表示。图3的任务可继续运行直到它们终止,因而可以有ΔTn+1总运行时间。总运行时间ΔT0和ΔT1表示任务A和任务B花费在运行状态的时间。ΔT1另外或者可选地表示自任务DFS最后处于运行状态以后的时间。在一种实施例中,总运行时间是任务DFS花费在就绪、阻塞或者等待状态的时间。可选地或者另外,总运行时间包括任务DFS花费在运行状态的时间,而不是仅任务A和任务B在运行状态中的时间。在步骤302,确定第一交易时间。第一交易时间可以为一组进程(例如,任务A和任务B)花费在利用虚拟部件而不是虚拟处理器的时间。在一种实施例中,第一交易时间是花费在利用被指定为低频的虚拟部件(例如,闪存108或者LCD107的虚拟表示)的时间量。可选地或者另外,第一交易时间是花费在执行I/O操作的时间。在一些实施例中,步骤302是当任务DFS处于运行状态时(例如,在时间片t2-t3和t5-t6)由任务DFS执行。在步骤304,根据第一交易时间和总的交易时间计算第二交易时间。第二交易时间是总的交易时间减去第一交易时间。在一种实施例中,第二交易时间是应用任务(例如,任务A和任务B)花费在利用虚拟处理器的时间。可选地或者另外,第二交易时间是花费在利用具有可调频率的任何部件的时间。步骤306,根据交易时间确定是否有必要对虚拟处理器调节功率。这种确定基于第二交易时间和总交易时间值。例如,计算第二交易时间与总时间的比值。高比值将归因于主要利用虚拟处理器的应用任务,因为第二交易时间接近总运行时间。相反,如果进程大部分是受I/O限制的则会得出低比值,因为第二交易时间会远小于总运行时间。然后,将产生的比值与虚拟处理器的当前频率相比较以确定是否有必要进行调节。可使用包括第一交易时间、第二交易时间或者总交易时间的任何其他比值。最后,在308,进行调节。如果在步骤306中计算比值,比值还可代表调节的方向。例如,由于进程是CPU密集型的,相对于当前频率的高比值可导致正向调节。因此,增加频率可提高这些进程的性能。由于进程是I/O密集型的,低比值可导致负向调节。在CPU不使用时,降低CPU的频率可保存能量,并且很少或者没有可观察到性能影响。如果比值基本上与当前频率水平相似,可以不调整或者进行小的调整。例如,如果任务是受CPU限制的,并且CPU已经在高频下运行,进一步提高频率是不可能的或者无益的。图5是设计成便于图4方法的图2的物理平台的交易级模型(TLM)。图5由与图1中的硬件部件相对应的多个TLM元件组成。发起端400和401分别表示处理器102和DMA106。系统总线114由TLM总线403表示。其他虚拟部件GFX104、以太网105、DMA106、LCD107、Flash108以及RAM109由目标端404表示,其中每个目标端404具有唯一的目标端ID。TLM总线403进一步包括总线监控单元(BMU)405和路由器406。有效载荷407表示由系统中的给定目标端处理的部分应用任务。应用任务(例如,任务A和任务B)可作为由发起端400和401控制的TLM交易处理。当在运行状态时,部分应用任务可被置放在TLM有效载荷中,例如,有效载荷407。有效载荷可被提交到总线403,有效载荷在总线403被路由器406指向到用于处理的合适目标端。在处理之后,所述目标端可以将有效载荷放回到TLM总线403上,有效载荷在TLM总线403上被返回发起端。BMU405可监控来自发起端400和401的所有通信量。应当理解,图5中描绘的有效载荷在每个表示形式中是相同的有效载荷。有效载荷的移动在几个位置中用双头箭头表示,以说明通过系统的移动。双头箭头表示从发起端401到目标端的路径以及再回来的路径。BMU405被配置成监控TLM总线403上的通信量。当发起端400或者401将有效载荷407提交给目标端404时,传输的有效载荷经过BMU405。同样地,当目标端将有效载荷返回给发起端时,有效载荷可经过BMU回传。有效载荷可包含处理该有效载荷的目标端的目标ID。因此。BMU可监控总线上所有通信量,除了通信的源端和目的地之外。BMU可被用于监控目标端的交易时间。例如,当有效载荷由发起端提交时,BMU可记录提交时间。当目标端用有效载荷响应时,BMU可记录响应时间。根据这两个时间戳,BMU可确定目标端处理有效载荷花费的总时间。可选地或者另外,目标端计算它本身的处理时间并且在响应有效载荷中包括该处理时间。在这种实施例中,BMU直接从有效载荷获取处理时间而不进行任何另外的计算。BMU可以各种有用的格式将交易时间存储在存储器中。在一种实施例中,交易时间可与目标端ID关联。每次目标端处理新的有效载荷,可存储一个新的交易时间,使得给定目标端可在存储器中具有多个交易时间。可选地,BMU可独立于处理目标端而保存运行总交易时间。每次新有效载荷被处理,BMU可将新的时间增加到总量上。在一种实施例中,BMU可存储单个交易时间和运行总交易时间的混合。例如,当给定目标端第一次处理有效载荷时,处理时间可由BMU存储。对于该目标端的每个后续交易时间可被加入到由BMU存储的时间中。如果另一目标端处理一个有效载荷,则第二目标端的交易时间可作为用于第二目标端的运行总交易时间分开存储。图6是根据本发明的一种实施例的示范TLM模型(例如,图5的那个)中的DFS的流程图。在500,启动一组进程。该启动可以在例如虚拟环境启动时发生。在一种实施例中,进程可以为图3中示出的任务A、任务B以及任务DFS。在502,对每个进程进行循环,这个循环可以是由运行在虚拟环境中的操作系统执行的上下文切换。在进入循环之前,每个进程可以处于等待、就绪或者阻塞状态。尽管循环内每个进程可以为运行状态,这个循环可以继续直到所有进程都已运行,或者可被操作系统或者用户中断。这种上下文切换的频率可由操作系统中的设置控制。可选地或者另外,上下文切换可以为用户定义的数值。数值ΔT是图4中示出的总交易时间。它是循环502花费在执行上的总时间,并且为便于参考较早的附图提供了ΔT。尽管ΔT仅包括图6中的步骤502-506,其他实施例包括其他步骤。在504,进程处于运行状态。它可将任务作为有效载荷通过虚拟总线提交到虚拟处理器,或者一个或者多个TLM目标端。这种提交可基本上类似于上述参考图5讨论的进程。在506,有效载荷目标端交易时间可由BMU存储。这种存储可以与如上述参考图4讨论的相似方式发生。可选地,BMU可仅存储利用虚拟处理器的任务的交易时间。在一种实施例中,目标端交易时间和虚拟处理器交易时间由BMU存储。接着步骤506,循环502可重复直到它被用户或者与任务DFS类似的进程中断。在508,从存储器获取步骤506中由BMU存储的交易时间。这些交易时间可被用于确定与TLM目标端花费在处理有效载荷上的时间相等的总的目标端交易时间。如果获取的交易时间被目标端分成段,使得每个目标端在存储器中具有唯一的入口,它们可加在一起以确定总的目标端交易时间。如果获取的交易时间是花费在利用虚拟处理器的时间,获取的时间可从总交易时间ΔT中减去以确定总的目标端交易时间。在510,执行频率调整评估。在一些实施例中,评估实质基本上类似于图4中公开的方法,其中第一交易时间等于步骤508中计算的总的目标端交易时间。频率调整评估可分析每个进程花费在利用不同虚拟硬件部件上的时间。然后它可相应地调整虚拟处理器的频率。例如,如果进程在利用TLM目标端上花费较多时间,虚拟处理器可被设为低频率。同样地,如果进程在将任务提交到虚拟处理器花费大部分时间,可提高频率。如果进程在利用虚拟处理器和TLM目标端上花费一些时间,频率可被设置到平衡功耗和性能的水平。通过基于在进程上的上次迭代(即,基于循环502的上次完整迭代)调整虚拟处理器的频率,系统能够动态优化它的性能。在新进程开始或者停止时,会影响交易时间。例如,如果一个大量利用虚拟处理器的新进程开始,步骤510的策略评估会导致处理器的频率提高。同样地,如果进程停止,评估会降低处理器的频率。这使得系统仅基于在给定时间运行的进程了解新的功率分布。它还使系统基于上次进程迭代预测未来功率需求。如果给出的进程组在一次迭代上已为I/O密集型,它们在下次迭代上很可能也会为I/O密集型。在一种实施例中,步骤510的策略评估结果(专家级评估(expert或experts))可存储在存储器中以用于未来考虑。例如,所述系统可存储在先的十个评估结果(专家)。每一个评估(专家)可作为新频率考虑的因素计入在内,较近的评估具有更多的权重。这有助于保护避免在短运行时间消耗不成比例的资源量的进程。如图7所示,一些实施例包括实施DVFS任务的计算机,该计算机平衡性能和能量损耗,给出的时钟序列T0、T1、T2、...,以及相对应的在时间(T0-T1、T1-T2、T2-T3、...TN-1-TN)之间的时间片序列,总的损耗可推导如下:ΔT=Ti-Ti-1,i=0,1,2,...n其中Tio从BMU获得,Tcpu=ΔT-Tio其中,如果(μ>μmesn)le=0,lp=μ-μmesnlp=性能损耗(2)如果(μ<μmesn)le=μmesn-μ,lp=0,le=能量损耗(3)总损耗lt=α×le+(1-α)×lp(4)其中,0≤α≤1,用户确定的能耗/性能权衡在线学习被用于预测目标端电压-频率(v-f)设置,给出总损耗,系统计算权重如下:其中,0≤β≤1,用户确定的,设置为0.75因此,概率由以下计算:其中,选择具有最高概率的专家来调整处理器的电压-频率设置。图7表示策略实施的一个实例。例如,假设总数有5个专家,每个都具有各自的v-f设置、权重以及概率,如图7中所示。在开始中(T0),DVFS策略任务将所有专家的权重设置为相等(例如,零)。然后DVFS策略任务变为休眠。在时间T0,DVFS策略任务唤醒,计算方程(1),并且使用结果选择一个专家。参见图7,假设选择专家3。一旦选定专家,DVFS策略任务为专家3继续计算并且更新方程(2)、(3)、(4)、(5)和(6)。这使得通过方程(6)为选定的专家确定最终概率。DVFS策略在所有专家中选择最高的概率值,并且使用它去调节处理器电压-频率设置。在此刻(时间片T0-T1的末端),仅为专家3计算概率。所有其他专家的概率值为零。根据规则(通过该规则选定具有最高概率的专家),DVFS策略选择专家3的V-F设置,并且调节CPU频率。然后DVFS策略任务再次变成休眠(睡眠)。在时间片T1-T2的末端,DVFS任务唤醒,并且重复计算方程(1)的步骤,更新专家选择,并且为当前选定专家更新方程(2)、(3)、(4)、(5)和(6)的执行。假设在时间T2,选择专家2,并且DVFS策略任务更新专家2的概率。然后,DVFS策略任务扫描图7中所有专家以寻找最高概率,并且使用选定的专家来调节处理器v-f设置。DVFS任务继续重复唤醒,计算方程(1),更新专家选择,并且为当前选定的专家更新方程(2)、(3)、(4)、(5)和(6)的执行。在一种实施例中,评估结果(专家)被写入到外部数据库513。外部数据库可被设置在运行虚拟环境的物理机器10上或者另外合适的机器中。该数据库可被用于功率分析目的。它可包括有关TLM目标端的信息、进程花费在利用虚拟处理器的时间、进程花费在利用TLM目标端上的时间等。在ELS运行功率分析使得该数据库在短时间段中具有相当数量的信息。ELS虚拟平台可以每秒百万周期数执行,并可能因此产生巨大量的运行时间数据。这些信息对工程师在系统继续设计和优化中是无价的。在一些实施例中,数据库内容包括但不限于:(1)CPU指令执行跟踪(给予用户多核片上系统(SOC)上程序运行和分支的实际路径的CPU指令流);(2)CPU中断事件跟踪(提供中断类型(MMU/TLB故障、系统调用、计时器中断、DMA中断、外部中断等);(3)跟踪或者不跟踪CPUL1/L2缓存器(监控缓存器的工作);(4)BUS交易跟踪(记录交易级模型(TLM)BUS交易(例如,近似的时间类型中的发起端和目标端的TLM状态));(5)主存储器读/写交易跟踪(提供存储器R/W地址日志);以及(6)I/O部件读/写交易跟踪(当CPU访问外围设备时提供外围设备的地址和名字)。这仅是一个实例,并且在其他实施例中,数据库的内容与上面的列表不同。在511,可提交用户定义的值以使策略评估偏移。例如,用户可约束频率调节的下限以保持性能的最低等级。可选地或者另外,用户可约束频率调节的上限以限制处理器运行的最大功耗或者温度。在一种实施例中,用户的输入使图4中所述的比值偏移。例如,用户可输入数值来增加第二交易时间,从而提高系统的性能和功耗。同样地,用户可输入数值来减少第二交易时间从而降低性能和功耗。用户的输入还可被用于影响第一交易时间或者总交易时间。在一种实施例中,用户偏移可基于包含在外部数据库513中的数据。当设计和优化系统时,这可能特别有利。一组进程可使得运行大量迭代次数或者指定量的时间来填充数据库。然后,工程师可观察记录的趋势,修正ESL设计,和/或提交偏移。然后,可再次运行进程以观察变化的效果。考虑到用户偏移输入可允许对系统基本上立即修正,这反过来可降低设计时间。在512,由BMU存储的交易时间可从存储器清除,因此他们不影响下次进程迭代。可选地,交易时间可被可被无限期留在存储器中或者留在存储器中一段时间。最后,在514,等待任务DFS完成的进程继续并且所述方法重复它本身。该方法的执行可继续直到虚拟平台关闭或者直到所有进程终止。应当理解,所述方法不限于步骤500开始的进程,并且新的应用进程可在任何时间开始或者停止。在一些实施例中,一种计算机具有被编程以执行进程的处理器,所述处理器包括:处理单元仿真器;至少一个硬件部件仿真器;与所述处理单元仿真器和所述至少一个硬件部件仿真器通信的系统总线仿真器;以及被配置成监控所述处理单元仿真器和所述至少一个硬件部件仿真器之间的通信量的总线监控单元(BMU)。所述BMU还被配置成记录非暂时性计算机可读存储介质中的总线使用数据。所述总线使用数据包括交易时间,该交易时间表示所述至少一个硬件部件仿真器花费在处理任务上的时间。在一些实施例中,一种方法包括:为运行在计算机仿真器上的多个应用任务确定总运行时间;基于所述应用任务花费在利用不是处理单元仿真器的至少一个硬件部件仿真器上的时间确定第一交易时间;根据所述总运行时间和所述第一交易时间计算第二交易时间;根据所述第二交易时间、所述第一交易时间以及所述总的交易时间确定是否调节所述处理单元仿真器的频率;以及调节所述处理单元仿真器的所述频率。在一些实施例中,一种编码有程序代码的非暂时性机器可读存储介质,其中当所述程序代码由处理器执行时,所述处理器执行包括以下步骤的方法:建立被配置成仿真硬件环境的计算机仿真器,其中所述计算机仿真器包括至少一个高频硬件部件仿真器和至少一个低频硬件部件仿真器;在所述计算机仿真器上运行一个计算机任务;以及基于所述低频硬件部件仿真器花费在处理计算机任务上的时间调节与高频硬件部件仿真器关联的仿真功率水平。本文描述的方法和系统可被至少以计算机实现的进程以及用于实现这些进程的装置的形式体现。本发明还可以至少部分以编码有计算机程序代码的可触知、非暂时性机器可读存储介质的形式体现。所述介质可包括诸如,RAM、ROM、CD-ROM、DVD-ROM、BD-ROM、硬盘驱动器、闪存或者任何其他非暂时性机器可读存储介质,其中当计算机程序代码被下载到计算机并且可被计算机执行时,所述计算机变为实施本发明的装置。所述方法还可至少部分以计算机程序代码被下载到其上和/或被其执行的计算机形式体现,使得当计算机程序代码被下载到计算机并且可被计算机执行时,计算机变成实施所述方法的装置。当在通用处理器上实施时,计算机程序代码段配置处理器以生成特定的逻辑电路。所述方法可选地可以至少部分体现在由具体应用集成电路形成的数字信号处理器中以执行所述方法。尽管根据示例性实施例已描述了本发明,但不仅限于此。相反,所附权利要求应当被广泛构造以包括本领域技术人员可以进行的其他变形和实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1