CN1099639C - 调节数字计算机中的应用程序的性能的方法 - Google Patents
调节数字计算机中的应用程序的性能的方法 Download PDFInfo
- Publication number
- CN1099639C CN1099639C CN97197581A CN97197581A CN1099639C CN 1099639 C CN1099639 C CN 1099639C CN 97197581 A CN97197581 A CN 97197581A CN 97197581 A CN97197581 A CN 97197581A CN 1099639 C CN1099639 C CN 1099639C
- Authority
- CN
- China
- Prior art keywords
- program
- time
- application program
- working time
- delay
- 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.)
- Expired - Fee Related
Links
Images
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/3409—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 for performance assessment
- G06F11/3433—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 for performance assessment for load management
-
- 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/3409—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 for performance assessment
- G06F11/3419—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 for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一个性能调节程序(图1中的22)实时地监视和控制一个应用程序(图1中的21-i)在其在数字计算机(图1中的10)上执行时所达到的性能水平。应用这个性能调节程序,防止任何连在计算机上的外部单元(图1中的11,12)由于应用程序中的过度性能而过载。应用这个性能调节程序,还能够容易地产生应用程序(图1中的21-i)的几个模型,以使得每个模型达到不同的性能水平。
Description
本发明涉及当一个应用程序在数字计算机中执行时调节该应用程序所达到的性能水平(performance level)的方法。
数字计算机一般由数字存储器和指令执行模块组成。几种不同类型的应用程序被同时存储在存储器中,并且指令执行模块是能够执行在这些程序中的指令的任一种数字逻辑电路。存储在存储器中的还有一个操作***,该操作***为每个要运行的应用程序分别选择时隙。
在上述的数字计算机中,在任何一个瞬间激活的应用程序的总数不必是恒定的。因此,一旦总数减少,则对于剩下的要运行的活动应用程序就有另外的时隙可用;反之亦然。于是,活动应用程序的性能水平将随着活动的应用程序的总数反向地变化。
进一步地,在任一个数字计算机中,一个典型的指令执行模块与以一特定频率运行的时钟同步来执行指令。如果该时钟频率是变化的,则活动的应用程序的性能水平也会变化。例如,如果将指令执行模块从一个模块升级到另一个以更高时钟频率运行的模块,则会出现时钟频率的这种变化。
由于活动应用程序的性能水平的上述变化,会出现某些问题。例如,一个应用程序的偶尔变得太高的性能水平将会引起与计算机交互的其他单元中的过载。并且,如果一特定应用程序的性能水平能在从一个非常低的水平到一个非常高的水平之间广泛地波动,则该程序的几个分别具有不同的性能水平的模型将不能产生。
因此,本发明的一个主要目的是提供一个性能调节程序,通过该程序,任何应用程序的性能水平都能被实时地监视和控制。
依据本发明,调节数字计算机中的应用程序的性能的方法包括下列步骤:
1)用计算机中的一个调节程序读出计算机运行的时钟频率;
2)用该调节程序将计算机上的应用程序的百分比运行时间的一个目标设置为时钟频率和一个被容许的特定性能水平的函数;
3)执行在计算机上的应用程序,以便重复地执行到调节程序的跳转;以及
4)如果计算机上的运行程序的实际百分比运行时间超过目标,在***一个相应的时延后,跟着每次跳转,继续执行步骤;否则,在不***时延的情况下继续执行步骤。
应用上述的性能调节程序,防止任何与计算机相连的外部单元由于应用程序中的过度性能而过载。例如,在没有调节程序的情况下,当应用程序的过度性能引起对一个数据文件的过多访问时,这种过载可能出现在该数据文件中。
应用上述的性能调节程序,还可以容易地产生几个应用程序模型,以便每个模型能实现不同的性能水平。这个特征是在步骤2通过在每个模型设置不同的容许性能水平来实现的。
下面将参考附图说明本发明的各种最佳实施例,其中:
图1示出了包含一个依据本发明的性能调节程序的数据处理***;
图2示出了图1中的调节程序的一个最佳实施例的内部结构;
图3示出了作为图2的调节程序的一部分、用于确定计算机的时钟频率的所执行的子步骤的最佳顺序;
图4示出了由图2的调节程序的一部分用来确定一个应用程序的百分比运行时间的目标的表;
图5示出了图2的调节程序的运行时序的一个例子;
图6示出了由图2的调节程序的一部分执行的几个计算,用于确定一个降低应用程序的相对于目标的实际百分比运行时间的延迟;
图7示出了图2的调节程序的一部分的另一个实施例,用于确定将减少应用程序的相对于目标的实际百分比运行时间的延迟;
图8示出了在将图7的实施例运用到图5的时序上时所得到的结果;
图9示出了可以代替图4的表的另一个表;以及
图10示出了图2中的调节程序的一个修改实施例的内部结构。
现在参考图1,说明包含本发明的一个数据处理***。这个图1中的数据处理***由一个数字计算机10、一个电子数据文件11和另一个数字计算机12组成。如图所示,单元11和12通过一个数字通信信道13彼此相连并与计算机10相连。
包括在数字计算机10内部的是数字存储器10a和指令执行模块10b。几种不同类型的软件程序20、21-1至21-N和22都存储在存储器10a中;而模块10b是能够执行在这些程序中的指令的任何数字逻辑电路。在一个特定实施例中,模块10b是一个以时钟频率CK运行的单个奔腾TM微处理器芯片。
在存储器10a中的每个程序21-1至21-N是任何所需类型的常规应用程序。例如,程序21-1可以是一个字处理程序,诸如WinwordTM;程序21-i可以是一个使用奔腾TM指令来分析和执行另一个计算机的指令的仿真程序;程序21-N可以是一个数据检索程序,例如LexisTM。
所有这些应用程序21-1至21-N以一种分时形式在模块10b上运行。程序20是一个操作***,例如Windows NTTM,该操作***为每个要运行的应用程序选择相应的时隙。
现在,依据本发明,程序22是一个与应用程序21-i一起运行的性能调节程序。由于程序22的运行,能在实时的基础上将应用程序21-i的性能调节为不超过一特定允许水平。例如,可以将应用程序21-i的性能限制为不超过100RPM,其中RPM是一个相对性能量度。
可以看到性能调节程序22的作用的一种方式是改变在整个时间内活动的应用程序的总数。一旦该总数减少,则有额外的时隙可用于应用程序21-i在模块10b上运行;反之亦然。因此,在没有调节程序22的情况下,应用程序21-i的性能水平将与活动的应用程序的总数呈反向变化。
并且,一旦模块10b被更新,就可以看到性能调节程序22的作用。例如,如果模块10b从一个90MHz奔腾TM芯片变成一个133MHz奔腾TM芯片,则在一单个时隙内执行的程序指令的个数将增加。因此,在没有调节程序22的情况下,应用程序21-i的性能水平也将提高。
性能调节程序22的一个主要特征是它防止每个单元11-13由于应用程序21-i的过度性能而变得过载。在没有调节程序22的情况下,如果程序21-i对数据文件11进行过多的访问,并/或向计算机12发送太多的消息,并/或向通信信道13上的其他任何单元(未示出)发送太多的数据,则可能出现这种过载。应用调节程序22,可以通过限制程序21-i的整个性能来避免这种过载。
性能调节程序22的另一个主要特征是它允许容易地产生应用程序的几个模型,以便每个模型实现不同的性能水平。这个特征是通过仅仅在每个模型中设置不同的容许性能水平来实现的。例如,可以将第一模型中的容许性能水平设置在50RPM;可以将第二模型中的容许性能水平设置在100RPM;可以将第三模型中的容许性能水平设置在150RPM等等。这个特征可以与上面的过载避免特征一起使用,也可以不一起使用。例如,每个模型可以有不同的价格。
下面将参考图2说明调节程序22的一个最佳实施例的内部结构。在这个图2的实施例中,调节程序22被分成两部分22a和22b。部分22a只执行一次,刚好在应用程序21-i开始运行之前执行。相比之下,部分22b响应从应用程序21-i重复进行的跳转被执行多次。
开始,如标号31所示,调节程序读取一个已经预先为应用程序21-i存储的容许性能水平。这个容许性能水平可以存储在应用程序21-i内,或者存储在调节程序内,或者存储在模块10b可读的任何介质内。接着,调节程序确定模块10b执行指令的时钟频率CK,这个步骤标号为32。
接着,调节程序使用步骤31的容许性能水平和步骤32的时钟频率来为应用程序21-i在模块10b上的百分比运行时间设置一个目标。例如,可以将目标设置为50%,这意味着一旦应用程序21-I启动,在模块10b上的运行时间一定不能超过一半。
接着,调节程序启动一个定时器,该定时器是包括在模块10b或另一个可由模块10b访问的单元内的;该定时器设置在应用程序21-I到调节程序的跳转之间经过的最小时间周期。这个步骤的标号为34。在这个相同步骤中,调节程序还从一个位于模块10b中的日期时钟的时间中读取日期TOD1的当前时间。
接着上述步骤31-34,应用程序21-i开始执行。在图2中显示的应用程序是一个仿真程序;但可以用任何其他类型的应用程序来替代该仿真程序。
在图2中,示出了仿真应用程序21-i的三个主要部分41、42和43。部分41执行下列任务:取出要仿真的指令中的一个,分析该指令,并测试在步骤34启动的定时器。如果定时器已经期满,则进行到调节程序的部分22b的跳转;否则,继续执行应用程序21-i。
应用程序21-i的部分42执行要仿真的一个“短”指令Op(i)。“短”指令是一个使用少于一预定量的时间而执行的指令。对于每个“短”指令Op(i),提供一个对应的仿真程序部分42。仿真程序部分42的执行一直继续到它完成,然后转移回部分41。
应用程序的部分43执行要仿真的一个“长”指令Op(j)。对于每个“长”指令Op(j),提供一个对应的仿真程序部分43。对于一个“长”指令,在每个仿真程序部分内的预定点,测试在步骤34启动的定时器。如果该定时器已经期满,则进行到调节程序的部分22b的跳转;否则,继续执行长指令。
每次进入调节程序22的部分22b时,确定模块1ob上的应用程序21-i的实际百分比运行时间。这个实际百分比运行时间是模块10b执行应用程序21-i期间的所有间隔开的时间周期的总和除以这些时间周期从开始到结束所经过的全部时间所得的结果。这个步骤的标号为35。
接着,调节程序的部分22b将在步骤35确定的实际百分比运行时间与目标进行比较,这个步骤的标号为36。如果实际百分比运行时间未超过目标,则进行一个返回跳转,返回到应用程序21-i;这由步骤36a所示。
相比之下,如果实际百分比运行时间超过了目标,则由调节程序执行步骤37-38。在步骤37,建立一个降低相对于目标的实际百分比运行时间的特定延迟Δ。如果延迟Δ小于一固定预置阈值,则在步骤37a进行一个返回跳转,返回到应用程序21-i。否则,在步骤38,转移到操作***,并带有一个在施加了至少Δ的延迟之后返回应用程序21-i的执行的请求。
在由步骤38启动的延迟期间,如果其他应用程序、例如程序21-N在当前是活动的,操作***20允许这些程序在模块10b上运行;因此,模块10b的数据处理能力没有浪费。如果在施加步骤38的延迟时应用程序21-i是唯一活动的应用程序,则操作***20将仅仅停留在一个空循环内,直到延迟结束。
下面参考图3说明在调节程序中的步骤32所要求的确定计算机的时钟频率的一个最佳方法。这个图3的方法包括几个子步骤,在图3中的标号为32a至32j。这个图3中的方法的一特定特征为可以避免由意外中断所引起的错误。
在子步骤32a,读取日期时间;在子步骤32b,读取一个机器周期计数C1;在子步骤32c,再次读取日期时间。时间T1是由子步骤32a获得的第一日期时间读数,时间T2是在子步骤32c获得的第二日期时间读数。
在子步骤32d中将这两个日期时间读数T1和T2相互进行比较。如果时间T2减T1大于一预置限度,例如三毫秒,则重复子步骤32a-32d,因为大于限度的时差表明在子步骤32a和子步骤32c之间出现了一个中断。这样一个中断破坏了表明计数值C1出现在日期时间T2的能力。
在子步骤32e,执行一特定系列操作;与此同时,机器周期计数器和日时钟增量几十次。然后,执行子步骤32f、32g和32h,这些子步骤与上述子步骤32a、32b和32c相同。
接着执行子步骤32i,将在子步骤32f和32h获得的日期时间读数T3和T4相互进行比较。如果时间T4减T3大于预置限度,则重复子步骤32f-32i,因为在子步骤32f和子步骤32h之间必然出现了一个中断。这样一个中断破坏了表明计数值C2出现在时间T4的能力。
在子步骤32j,将处理器的时钟频率确定为在时间间隔T4-T2期间出现的机器周期数。这个周期数等于子步骤32g的计数值C2减去子步骤32b的计数值C1,而不考虑在子步骤32e执行的系列操作期间的任何点是否有中断出现。
接着,参考图4,对于模块10b是一单个奔腾TM微处理器的情况,说明为应用程序20-i的百分比运行时间设置一个目标的一个最佳方法。这个目标设置出现在前述的图2中的步骤33中。
图4是一个具有几行和三列的表格的形式。在每行中,最左边的表项给出了在模块10b中的单个奔腾TM微处理器的一特定时钟频率;下一个表项给出了应用程序20-i一定不能超过的容许性能水平;最右边的表项给出了应用程序20-i的百分比运行时间的一对应目标。
例如,在图4的第二行,时钟频率是75MHz;容许性能水平是100RPM;目标百分比运行时间是50%。这意味着如果模块10b是一个75MHz的奔腾TM微处理器,则当程序在模块10b上运行了时间的50%时,应用程序20-i达到的相对性能水平将为100RPM。
为了产生图4表中的所有表项,对于100%的时间以一特定时钟频率f0在奔腾TM微处理器上运行应用程序20-i,并测量所得性能水平P0。然后,为了在时钟频率保持在f0时将性能P0减少至任何容许性能水平PPL,将百分比运行时间的目标设置为等于PPL除以P0。如果时钟频率变为fx而容许性能水平保持不变,则百分比运行时间的目标变化量为f0除以fx的比。
现在参考图5,更详细地说明调节程序操作的时序。图5是一个时间沿水平轴从左到右的时序图。在时间t0之前,一个其他的应用程序(例如程序21-N)在模块10b上运行。
在时间t0,操作***20结束其他应用程序的运行,因为它的时隙已经结束。然后,在时间t0和t1之间,操作***20决定开始仿真程序21-i;于是在时间t1,操作***给予仿真程序一个时隙。
从时间t1开始,如同前面结合图2所说明的,执行调节程序的部分22a。在这里,为仿真程序21-i的百分比运行时间设置一个目标。同时还启动一个定时器,该定时器将引起从仿真程序到调节程序的重复跳转;并读取最初的日期时间TOD1。
在图2和5中,作为一个例子,将跳转之间的时间设置为20毫秒。同样作为一个例子,将最初的日期时间TOD1设置为8:05:00:00。所有的日期时间读数都是以小时:分:秒:和毫秒给出的。
在上述的调节程序部分22a的操作之后,实际上开始执行仿真程序21-i。仿真程序21-i的执行一直持续到时间t2,在该点进行到调节程序的部分22b的跳转。这个跳转是响应于一个期满的定时器而发生的,如前所述,该定时器在图2的步骤34开始,并在仿真程序的部分41和43中进行测试。
从时间t2开始,调节程序22确定应用程序实际的百分比运行时间是否超过目标。在进行这个判定中,调节程序发现,在时间t1(仿真程序第一次开始的时间)和当前时间t2之间,仿真程序运行100%的时间。
为了减少相对于目标的实际百分比运行时间,需要***一个20毫秒的延迟Δ。因此,调节程序转移到操作***,并请求仅仅在至少为Δ的延迟已经消逝之后返回。
响应于上述转移,操作***允许另一个应用程序运行。该另一个应用程序一直运行到操作***20决定给予仿真程序21-i另外的运行时间。在图5中,从时间t3开始给予仿真程序这种另外的运行时间。
在t2到t3的时间间隔期间,定时器再次期满。因此,在时间t3刚刚过去之后,就进行到调节程序的部分22b的跳转。在这里,实际的百分比运行时间被确定为小于目标;于是进行返回到仿真程序21-i的返回跳转。
此后,直到时间t4,仿真程序继续在模块10b上运行。然后,在时间t4,进行从仿真程序到调节程序的部分22b的跳转。这个跳转是响应于在图2的步骤34开始的定时器的另一次期满而出现的。
在时间t4的到调节程序的跳转中,再次将实际百分比运行时间与目标百分比运行时间进行比较。通过进行这个比较,可以确定实际百分比运行时间没有超过目标。因此,调节程序的部分22b进行返回到仿真程序的返回跳转,而不是到操作***的跳转。
从时间t4到时间t5,继续执行仿真程序。然后,在时间t5,响应于定时器的另一次期满,进行到调节程序的部分22b的另一次跳转。
当在时间t5进入调节程序时,将仿真程序的实际百分比运行时间再次与目标百分比运行时间进行比较。这个比较表明实际百分比运行时间没有超过目标;但它们之间的差并没有超过一预先提供的阈值。因此,进行从调节程序返回到仿真程序的另一次返回跳转。
从时间t5到时间t6继续执行仿真程序;然后,由于定时器期满,出现到调节程序的部分22b的另一次跳转。然后,调节程序确定仿真程序的实际百分比运行时间超过目标的量大于阈值。
为了减少相对于目标的实际百分比运行时间,需要***一个22毫秒的延迟Δ。因此,调节程序转移到操作***,并请求在至少为Δ的延迟出现之后返回到仿真程序。
响应于这个转移,操作***允许其他应用程序运行。然后,在时间t7,操作***再次允许继续执行仿真程序。在仿真程序的这个执行期间,与时间t3和时间t6之间出现的情况相同,重复地进行到调节程序的跳转。
在图6中示出了调节程序的部分22b是如何确定实际的百分比运行时间并且产生用于降低实际百分比运行时间所需的延迟Δ的。在这里,行51a说明在时间t2,仿真程序21-i的实际百分比运行时间等于仿真程序的运行时间RT除以TOD2-TOD1。在行51a,TOD2是在时间t2的日期时间,TOD1是在时间t1的日期时间。
仿真程序21-i的运行时间RT由操作***保存;并且由调节程序通过执行一个“读运行时间”命令来读出。当前的日期时间由模块10b内的一个日时钟保存,并由调节程序通过执行一个“读日期时间”命令来读出。
在行51b,将目标50%设置为等于运行时间RT除以值TOD2-TOD1+Δ。对行51b求解Δ,得出必须在时间t2***以便将实际百分比运行时间降至50%的延迟。在行51将该延迟Δ确定为20毫秒。
行52a说明在时间t3,仿真程序21-i的实际百分比运行时间等于仿真程序的运行时间RT除以TOD3-TOD1。在这里,TOD3是在时间t3的日期时间。在时间t3,实际百分比运行时间低于目标;因此,不***延迟。
同样,行53a说明在时间t4,仿真程序21-i的实际百分比运行时间等于仿真程序的运行时间RT除以TOD4-TOD1。在这里,TOD4是在时间t4的日期时间。在时间t4,实际百分比运行时间低于目标;因此,不***延迟。
行54a说明在时间t5,仿真程序21-i的实际百分比运行时间等于仿真程序的运行时间RT除以TOD5-TOD1;其中,TOD5是在时间t5的日期时间。这产生了高于目标的实际百分比运行时间50.8%。
在行54b,将目标50%设置为等于运行时间RT除以值TOD5-TOD1+Δ。对行54b求解Δ,得出2毫秒的延迟,如行54c所示,该延迟必须被***以便将实际百分比运行时间降至50%。然而,因为这个2毫秒延迟未超过预先产生的阈值,所以不***该延迟。
行55a说明在时间t6,仿真程序21-i的实际百分比运行时间等于仿真程序的运行时间RT除以TOD6-TOD1。这产生的实际百分比运行时间为57.9%。在行55b,将目标50%设置为等于运行时间RT除以值TOD6-TOD1+Δ。对行55b求解Δ,得出22毫秒的延迟,如行55c所示。
现在已经详细说明了本发明的一个最佳实施例。现在,结合图7、8、9和10,说明本发明的另一些最佳实施例。
在图7中,显示的步骤60-69包括图2中的调节程序的部分22b的一个替换实施例。应用这个图7的实施例,由步骤60将一个应用程序21-i的实际百分比运行时间定义为等于该应用程序的运行时间RT除以运行时间加上由调节程序***的所有延迟。
如果步骤60的实际百分比运行时间超过目标,则由步骤61得出一个延迟Δ,以使得应用程序的运行时间RT除以运行时间加所有预先***的延迟加延迟Δ的值等于目标。如果延迟Δ大于一预设阈值(例如10毫秒),则步骤62和63表明执行剩下的步骤63至69。
在步骤64,读当前的日期时间X。在步骤65,从调节程序转移到操作***,并请求在至少为Δ的延迟出现之后返回。随后,当这个从操作***的返回发生时,执行步骤66,读当前的日期时间Y。然后,在步骤67,将在步骤64和步骤66之间出现的实际延迟的持续时间确定为值Y-X。在步骤68,将实际延迟Y-X加到所有预先***的延迟上,以得出当前的所有***延迟的总量。
图8中示出了在将图7的调节程序应用到图5中的时序图上时在程序的各个步骤所产生的结果。这个图包含一个表,其中,列对应着图5中的瞬时时间,行对应着图7中的步骤。例如,图8的在列t3、行61’的表项是20毫秒;这表明当在图5中的时间t2应用图7的步骤61时延迟Δ是20毫秒。同样,图8的在列t3、行67’的表项是58毫秒;这表明当在图5中的时间t3应用步骤67时得到的实际延迟Δ是58毫秒。
使用图7中的步骤60来确定实际百分比运行时间的一个特定特征是忽略了在由操作***启动的应用程序21-i的运行时间中的延迟。例如,如果操作***在图5中的用虚线指示的时间tx启动仿真程序的运行的结束,则出现在时间tx到时间t7的仿真程序的运行中的延迟在图7的步骤60中被忽略。这个延迟在图7的步骤61中也被忽略。
相反,根据结合图6说明的调节程序的第一个实施例,由操作***启动的从时间tx到时间t7的仿真程序的运行中的延迟则不被忽略。根据图6的实施例,在时间t7的实际百分比运行时间将等于直到时间t7的仿真程序的全部运行时间除以TOD7-TOD1。
下面将参考图9,在图9中示出了一个构成前述的图4中的表的另一个实施例的表。应用这个图9的实施例,应用程序21-i的百分比运行时间的目标与一个微处理器的几个不同的模型有关,每个模型都可以作为一个备选方案被包含在模块10b中。
例如,图9表的第一行表明,对于100%的目标百分比运行时间,当应用程序21-i在模块10b内由一单个75MHz的奔腾TM微处理器执行时,该程序的性能水平将为200RPM。同样,图9的第二行表明,对于100%的目标百分比运行时间,当应用程序21-i在模块10b内由双75MHz的奔腾TM微处理器执行时,该程序的性能水平将为300RPM。同样,图9的第三行表明,对于100%的百分比运行时间,当应用程序在模块10b内由一单个75MHz的奔腾ProTM微处理器执行时,该程序的性能水平将为240RPM。
为了产生图9的全部三行中的表项,对于100%时间在时钟频率为75MHz的三个计算机模型的每一个上运行应用程序21-i,并测量在每种情况下所得的性能水平。然后,为了确定目标百分比运行时间应该为多少,以便将上述的性能水平降至任何更低的性能水平,同时时钟频率或者保持在75MHz或者改变,则采用与前面结合图4所说明的相同的过程。通过执行该步骤,对于模块10b的每个实施例产生了单独的图4,如图9中所列。
下面将参考图10说明图2中的调节程序的一个修改的实施例。在图10的实施例中,将调节程序分成两部分22a’和22b’。部分22a’只执行一次,出现在应用程序21-i开始运行之前。部分22b’响应于从应用程序21-i重复进行的跳转被执行多次。
在图10的步骤71中,调节程序从一个允许应用程序21-I访问的文件读取一特定性能水平。接着,在步骤72,调节程序确定模块10b执行指令的时钟频率。这两个步骤71和72与图2中的步骤31和32相同。
接着,在步骤73,调节程序22a’确定被包含在模块10b中的微处理器的特定模型。例如,根据图9,该模型可以是一单个奔腾TM微处理器芯片,或双奔腾TM微处理器芯片,或单个奔腾ProTM微处理器芯片。为了执行步骤73,执行一个“CPU识别”指令(CPUID)。
在步骤74,使用前面步骤71-73的结果为应用程序21-i的百分比运行时间设置一个目标。通过从一个诸如图4和9中的表读取一个表项来实现步骤74。
接着,在步骤75,调节程序将一个初始值装入在模块10b内的一个寄存器或存储器10a的一个字;并读取当前的日期时间TOD1。接着将该初始值减至零值以下,从而产生从应用程序到调节程序的跳转;因此,这是由图2中的步骤34启动的定时器的一个替换。
接着上述步骤71-75,开始应用程序21-i的执行。再次将程序21-i显示为一个仿真程序,以便可以在图10和图2的实施例之间进行比较;然而,任何其他类型的应用程序可以用来代替该仿真程序。
在图10中,示出了仿真应用程序21-i的三个主要部分41’、42’和43’。部分41’与图2中的部分41相同,除了在部分41’中,将计数值减一,并为一个小于零的值测试该计数值。部分42’与图2中的部分42是相同的。部分43’与图2中的部分43相同,除了再将计数值减一,并为一个小于零的值测试该计数值。
当检测到一个小于零的计数值时,进行到调节程序的部分22b’的跳转,其中部分22b’包括图7的所有步骤60-69。在步骤61,确定延迟Δ,该延迟Δ将减少应用程序21-i的相对于目标的实际百分比运行时间。如果延迟Δ小于预设阈值,则立即进行一个返回到应用程序的返回跳转。否则,在步骤65,转移到操作***,并请求在至少为Δ的延迟出现之后返回。在该延迟完成之后,执行图7的调节程序的步骤66-69。然后,将该初始值重新装入寄存器或存储字,并进行一个返回到应用程序21-i的返回跳转。
根据调节程序的图10的实施例和图2的实施例,可以通过只在模块10b中执行几个指令来执行确定延迟Δ的步骤,其中该延迟Δ将减少相对于目标的实际百分比运行时间。因此,对于延迟Δ不超过阈值的每种情况,调节程序只消耗非常少的时间。
在图2和图10中,最好将未***延迟的到调节程序的每次跳转和到应用程序的立即返回限制为小于在到调节程序的任何两次连续跳转之间的时间的百分之一。这保证了调节程序只提供一个不太大的额外量。
在图10的实施例中,随着模块10b的时钟频率CK的增加,在调节程序的块22a’装入并在块22b’再次装入的初始值最好也由调节程序增加。这保证了在到调节程序的任何两次连续跳转之间的时间实质上保持恒定,例如保持在20MS。因此,随着时钟频率CK的增加,由于调节程序而产生的额外量将保持在较小的范围。
确定计算机的时钟频率的一特定方法包括图3中的子步骤32a-32j。但作为图3的一个修改,子步骤32a、32c、32f和32g可以变为读机器周期计数器;子步骤32b和32g可以变为读日期时间,子步骤32d和32i可以变为比较分别来自子步骤32a-32c和32f-32g的机器周期计数值。如果两个机器周期计数值之间的差小于一预设值,例如三千,则在读这些计数值之间不会出现中断。
上面已经详细说明了本发明的几个最佳实施例。然而,另外在不偏离本发明的精神和构思的情况下,对于最佳实施例的细节可以作出很多改变和修改。因此,应该理解,本发明并不限于任何一个特定实施例的细节部分,而是由附带的权利要求所限定。
Claims (13)
1.一种调节在数字计算机中的应用程序的性能的方法,所述方法由所述计算机执行并包括下列步骤:
由所述计算机中的一个调节程序读出所述计算机工作的时钟频率;
由所述调节程序将所述计算机上的所述应用程序的百分比运行时间的目标设置为所述时钟频率和要达到的一特定性能水平的一个函数;
执行在所述计算机上的所述应用程序,以便重复地进行到所述调节程序的跳转;
接着每次所述跳转,如果在所述计算机上的所述应用程序的实际百分比运行时间超过所述目标,在***一个相应的时间延迟之后,继续所述执行步骤;否则,继续所述执行步骤,而不***所述延迟;
通过从所述调节程序转移到所述计算机中的操作***,同时请求***一特定的时间延迟,从而开始每个相应的时间延迟,其中所述操作***通过使所述计算机在等于或大小所述特定延迟的时间段内执行其它程序而响应。
2.如权利要求1所述的方法,其特征在于,由所述调节程序***每个相应的时间延迟,其中所述延迟为一个可变的、随着所述实际百分比运行时间减去所述目标的增加而增加的持续期间。
3.如权利要求1所述的方法,其特征在于,在所述调节程序中由下列子步骤选择每个相应的时间延迟:确定所述应用程序的全部运行时间和自从所述运行时间开始所连续经过的全部时间,并选择所述相应的时间延迟,以使所述目标等于所述全部运行时间除以所述连续经过的全部时间和所述相应时间延迟的总和。
4.如权利要求1所述的方法,其特征在于,在所述调节程序中由下列子步骤选择每个相应的时间延迟:确定所述应用程序的全部运行时间和自从所述运行时间开始由所述调节程序***的全部延迟,并选择所述相应的时间延迟,以使所述目标等于所述全部运行时间除以所述全部运行时间和所述全部延迟和所述相应时间延迟的总和。
5.如权利要求1所述的方法,其特征在于,仅仅对于一个超过一预定最小阈值的持续期,***每个相应的时间延迟。
6.如权利要求1所述的方法,其特征在于,所述读出步骤包括下列子步骤:从所述计算机中的一个日时钟取出一对读数,从所述计算机中的一个机器周期计数器取出在所述对之间的一个读数;执行一系列指令;重复所述取步骤;以及,只有在每对中的日期时间读数的差小于一预定范围时,将所述时钟频率设置为等于来自所述机器周期计数器的读数之间的差除以来自不同对所述日时钟的两个读数之间的差。
7.如权利要求1所述的方法,其特征在于,所述读出步骤包括下列子步骤:从所述计算机中的一个机器周期计数器取出一对读数,从所述计算机中的一个日时钟取出在所述对之间的一个读数;执行一系列指令;重复所述取步骤;以及,只有在每对中的机器周期计数器读数的差小于一预定范围时,将所述时钟频率设置为等于来自所述机器周期计数器的不同对的两个读数之间的差除以来自所述日时钟的读数之间的差。
8.如权利要求1所述的方法,其特征在于,所述设置所述目标百分比运行时间的步骤包括下列子步骤:在所述调节程序中提供一个表,该表使几个百分比运行时间与时钟频率和性能水平的对应组合相联系;以及,使用来自所述读出步骤的所述时钟频率和所述特定的性能水平,从所述表中选择所述目标百分比运行时间。
9.如权利要求1所述的方法,其特征在于,所述读出步骤包括下列子步骤:由所述调节程序为所述计算机检测一特定模型;以及,由所述模型和所述时钟频率和所述特定性能水平的组合来设置所述目标百分比运行时间。
10.如权利要求1所述的方法,其特征在于,由所述计算机中的一个定时器电路启动在所述执行步骤中的所述跳转,该定时器电路与所述应用程序的执行并行运行。
11.如权利要求1所述的方法,其特征在于,由一个计数值启动在所述执行步骤中的所述跳转,所述计数值由与所述应用程序一起顺序执行的指令进行改变。
12.如权利要求1所述的方法,其特征在于,将到所述调节程序的每次跳转和随后继续进行的没有所述延迟的所述执行步骤限制为在到所述调节程序的任何两个连续跳转之间的时间的百分之一的时间内出现。
13.如权利要求1所述的方法,其特征在于,即使当所述时钟频率提高时,所述调节程序使所述执行步骤的所述跳转的出现速率保持为实质上恒定的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/686,612 | 1996-07-19 | ||
US08/686,612 US5794011A (en) | 1996-07-19 | 1996-07-19 | Method of regulating the performance of an application program in a digital computer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1228856A CN1228856A (zh) | 1999-09-15 |
CN1099639C true CN1099639C (zh) | 2003-01-22 |
Family
ID=24757035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97197581A Expired - Fee Related CN1099639C (zh) | 1996-07-19 | 1997-07-18 | 调节数字计算机中的应用程序的性能的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5794011A (zh) |
EP (1) | EP0912940B1 (zh) |
JP (1) | JP3215438B2 (zh) |
CN (1) | CN1099639C (zh) |
DE (1) | DE69701806T2 (zh) |
WO (1) | WO1998003917A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381558B1 (en) | 1998-12-18 | 2002-04-30 | International Business Machines Corporation | Alternative profiling methodology and tool for analyzing competitive benchmarks |
US20020135611A1 (en) * | 1999-03-04 | 2002-09-26 | Trevor Deosaran | Remote performance management to accelerate distributed processes |
US6580431B1 (en) * | 1999-03-04 | 2003-06-17 | Nexmem | System, method, and computer program product for intelligent memory to accelerate processes |
US6978233B1 (en) | 2000-03-03 | 2005-12-20 | Unisys Corporation | Method for emulating multi-processor environment |
US6978374B1 (en) | 2000-09-29 | 2005-12-20 | Unisys Corporation | Authorization key system for selectively controlling the performance of a data processing system |
KR20030020221A (ko) * | 2001-09-03 | 2003-03-08 | 주식회사 만호 | 차량용 헤드라이너 모듈화용 브래킷트, 고정클립 및 그고정방법 |
US20030120539A1 (en) * | 2001-12-24 | 2003-06-26 | Nicolas Kourim | System for monitoring and analyzing the performance of information systems and their impact on business processes |
US8903968B2 (en) * | 2006-08-29 | 2014-12-02 | International Business Machines Corporation | Distributed computing environment |
DE102006046201A1 (de) * | 2006-09-29 | 2008-04-17 | Siemens Ag | Verfahren zum rechnergestützten Optimieren des Ressourcenverbrauchs eines Programms |
DE102007029133A1 (de) * | 2007-03-20 | 2008-09-25 | Ludwig-Maximilians-Universität | Verfahren zum rechnergestützten Ermitteln der Abhängigkeiten einer Vielzahl von Modulen eines technischen Systems, insbesondere eines Softwaresystems |
CN102033802B (zh) * | 2010-11-11 | 2013-01-23 | 广东威创视讯科技股份有限公司 | 一种统计显示设备累计运行时间的装置及其方法 |
US9870298B2 (en) * | 2013-08-26 | 2018-01-16 | Google Llc | Application resource utilization management |
CN104615525B (zh) * | 2013-11-01 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 一种检测移动终端中应用程序的运行时长的方法及装置 |
US11068827B1 (en) * | 2015-06-22 | 2021-07-20 | Wells Fargo Bank, N.A. | Master performance indicator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5047919A (en) * | 1986-04-03 | 1991-09-10 | Harris Corporation | Method and apparatus for monitoring software execution in a parallel multiprocessor computer system |
WO1993022725A1 (en) * | 1992-04-28 | 1993-11-11 | THE UNITED STATES GOVERNMENT as represented by THESECRETARY OF COMMERCE | Synthetic perturbation tuning of computer programs |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4893271A (en) * | 1983-11-07 | 1990-01-09 | Motorola, Inc. | Synthesized clock microcomputer with power saving |
US4727491A (en) * | 1984-06-27 | 1988-02-23 | Compaq Computer Corporation | Personal computer having normal and high speed execution modes |
US5086387A (en) * | 1986-01-17 | 1992-02-04 | International Business Machines Corporation | Multi-frequency clock generation with low state coincidence upon latching |
US4882727A (en) * | 1987-03-11 | 1989-11-21 | Aristacom International, Inc. | Adaptive digital network interface |
US5483659A (en) * | 1987-09-14 | 1996-01-09 | Yamamura; Kimio | Apparatus for controlling a signal processing system to operate in high and low speed modes |
US5123107A (en) * | 1989-06-20 | 1992-06-16 | Mensch Jr William D | Topography of CMOS microcomputer integrated circuit chip including core processor and memory, priority, and I/O interface circuitry coupled thereto |
-
1996
- 1996-07-19 US US08/686,612 patent/US5794011A/en not_active Expired - Lifetime
-
1997
- 1997-07-18 EP EP97934220A patent/EP0912940B1/en not_active Expired - Lifetime
- 1997-07-18 CN CN97197581A patent/CN1099639C/zh not_active Expired - Fee Related
- 1997-07-18 WO PCT/US1997/012619 patent/WO1998003917A1/en active IP Right Grant
- 1997-07-18 DE DE69701806T patent/DE69701806T2/de not_active Expired - Fee Related
- 1997-07-18 JP JP50710598A patent/JP3215438B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5047919A (en) * | 1986-04-03 | 1991-09-10 | Harris Corporation | Method and apparatus for monitoring software execution in a parallel multiprocessor computer system |
WO1993022725A1 (en) * | 1992-04-28 | 1993-11-11 | THE UNITED STATES GOVERNMENT as represented by THESECRETARY OF COMMERCE | Synthetic perturbation tuning of computer programs |
Also Published As
Publication number | Publication date |
---|---|
DE69701806T2 (de) | 2000-10-19 |
JPH11514120A (ja) | 1999-11-30 |
CN1228856A (zh) | 1999-09-15 |
WO1998003917A1 (en) | 1998-01-29 |
DE69701806D1 (de) | 2000-05-31 |
JP3215438B2 (ja) | 2001-10-09 |
EP0912940B1 (en) | 2000-04-26 |
EP0912940A1 (en) | 1999-05-06 |
US5794011A (en) | 1998-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1099639C (zh) | 调节数字计算机中的应用程序的性能的方法 | |
Oskin et al. | HLS: Combining statistical and symbolic simulation to guide microprocessor designs | |
Haque et al. | Exploiting heterogeneity for tail latency and energy efficiency | |
Halpern et al. | Mobile CPU's rise to power: Quantifying the impact of generational mobile CPU design trends on performance, energy, and user satisfaction | |
Jia et al. | Stargazer: Automated regression-based GPU design space exploration | |
Liu et al. | EXPERT: expedited simulation exploiting program behavior repetition | |
CN105302717A (zh) | 一种大数据平台的检测方法及装置 | |
Gencer et al. | Configuring distributed computations using response surfaces | |
Gaspar et al. | A framework for application-guided task management on heterogeneous embedded systems | |
CN1200342C (zh) | 指令变换装置和变换方法 | |
US20060020918A1 (en) | Determining call counts in a program | |
CN109116911A (zh) | 一种智慧型超频方法 | |
Chen et al. | Iterative optimization for the data center | |
CN102067064B (zh) | 具有可调节的性能水平的数据处理装置及其操作方法 | |
CN1286005C (zh) | 微处理器 | |
US6370494B1 (en) | Simulator and computer-readable recordable medium having program for execution on computer realizing the simulator recorded thereon | |
Creus et al. | Optimizing mobile software with built-in power profiling | |
EP1920367A1 (en) | Electronic circuit design | |
Bobrek et al. | Stochastic contention level simulation for single-chip heterogeneous multiprocessors | |
Sondag et al. | Phase-guided thread-to-core assignment for improved utilization of performance-asymmetric multi-core processors | |
Henkel et al. | The interplay of run-time estimation and granularity in HW/SW partitioning | |
CN110032407A (zh) | 提升cpu并行性能的方法及装置和电子设备 | |
JP2015169997A (ja) | プログラム解析装置及びプログラム解析方法及びプログラム | |
Ziegler et al. | Design flow parameter optimization with multi-phase positive nondeterministic tuning | |
Schmitt et al. | Emulating the Power Consumption Behavior of Server Workloads using CPU Performance Counters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |