提取cpu时间工具的制作方法

文档序号:6570678阅读:148来源:国知局
专利名称:提取cpu时间工具的制作方法
技术领域
本发明一般地涉及处理环境内的处理,具体地说,涉及有效确定任务 的资源使用的工具。
背景技术
确定资源使用对于包括代码改进、计费在内的许多处理方面而言至关 重要。针对其确定使用的一种资源是处理器时间。在由国际商业机器公司
提供的z/Architecture中,提供了测量已用中央处理单元(CPU)时间并 在已经过指定时间量时导致中断的计时器。
由设置CPU计时器(SPT)控制指令没置此计时器,并通过存储CPU 时间(STPT)控制指令检查此计时器的内容。这些指令都是特权指令以确 保时间的准确性,并且因此不可由问题状态程序(即用户程序)使用。
除了上述之外,由国际商业机器公司提供的2/08@操作系统还提供了 称为TIMEUSED的服务例程,此服务例程可用于问题状态程序。程序或 操作调用此服务以确定一段代码(例如任务)使用的CPU时间量。 TIMEUSED服务例程计算已用时间,将累积时间相加,并将值返回给程序。 TIMEUSED例程的计算必须在禁用中断时执行,因为任何中断都会通过操 纵CPU计时器或累加器而对结果产生不利影响。
TIMEUSED服务例程通过程序调用被链接并且程序返回指令。此例程 禁用中断、获取并释放CPU锁、建立恢复环境、计算已用时间,并在完成 其工作之后重新启用,所有这些操作将花费数百个CPU周期。当尝试测量 很小的代码段时,TIMEUSED服务例程的开销将会严重干扰所测量的内 容。

发明内容
根据以上所述,需要一种工具以有效确定资源使用,例如任务的已用
CPU时间。具体地说,需要一种在不调用操作系统服务的情况下有效确定
任务的资源使用的工具。需要用户能够有效确定资源使用。
通过提供如权利要求1中要求保护的方法克服了现有技术的缺点并提 供了其他优点。
在此还描述和要求保护了对应于上述方法的系统和计算机程序产品, 以及一个或多个指令。
通过本发明的技术实现了其他功能和优点。在此详细描述了本发明的 其他实施例和方面并将其视为所要求保护的发明的 一部分。


在说明书结尾处的权利要求中作为实例具体指出并明确要求保护本发 明的一个或多个方面。从下面结合附图的详细说明,本发明的上述和其他
目标、特性和优点是显而易见的,这些附图是
图1示出了结合并^f吏用本发明的一个或多个方面的处理环境的一个实 施例;
图2示出了根据本发明的一个方面的与确定资源使用关联的逻辑的一 个实施例;
图3示出了根据本发明的一个方面的所使用的提取CPU时间指令的格 式的一个实例;
图4a示出了由本发明的一个方面的提取CPU时间指令使用的通用寄 存器0的字段的一个实施例;
图4b示出了由本发明的一个方面的提取CPU时间指令使用的通用寄 存器l的字段的一个实施例;
图5示出了才艮据本发明的一个方面的与执行提取CPU时间指令关联的 逻辑的一个实施例;图6是本发明的一个方面的提取CPU时间指令的操作的图示;以及 图7示出了结合本发明的一个或多个方面的计算枳一呈序产品的一个实例。
具体实施例方式
根据本发明的一个方面,提供了一种工具以有效确定在处理环境内执 行的任务的资源使用。在一个实例中,提供了一种工具,其中用户(例如 用户代码、用户应用、用户程序等)可以准确测量执行特定代码段(在此 称为任务)所需的处理器时间。此工具确定已用处理器时间而没有^f吏此类 测量失真的显著开销,例如与使用操作系统服务确定已用时间关联的开销。
参考图l描述了结合并使用本发明的一个或多个方面的处理环境的一 个实施例。处理环境100例如是多处理环境,包括通过例如一个或多个总 线108或其他连接相互连接的多个处理器102(例如中央处理单元(CPU))、 存储器104 (例如主存储器)以及一个或多个输入/输出(I/O)设备106。
作为一个实例,每个处理器102是由位于纽约阿蒙克的国际商业机器 公司提供的IBM System Z^服务器,并且一个或多个处理器执行诸如也 由国际商业才几器/>司提供的2/08@之类的操作系统。(IBM和z/OS是位 于美国纽约阿蒙克的国际商业机器公司的注册商标。在此使用的其他名称 可以是国际商业才几器>^司或其他>^司的注册商标、商标或产品名称。)
通过提供能够确定资源使用,例如已用处理器(例如CPU)时间而不 需要调用操作系统服务或不使用特权指令或操作的工具而便于处理环境内 的处理。
参考图2描述了与确定资源使用关联的逻辑的一个实施例。由处理环 境的处理单元执行此逻辑以响应例如用户应用(例如,非特权代码)的请
使用(步骤200 )。
初始地,通过如所述逻辑指示的读取计数器值来确定用于跟踪任务的 资源(例如所用时间)的计数器的当前值(步骤202)。然后从保存值中减去所确定的值,所述保存值例如是计数器在其启动时的值(步骤204)。 在一个实例中,当任务使用资源时计时器递减并读取计数器的当前值以响 应请求。减去的结果表示此时间间隔内任务使用的资源量,此时间间隔由 计数器的开始值和结束值定义(步骤206)。
在一个实例中,由指令执行用于确定资源使用的操作。作为一个特定 实例,提供了指令以确定任务使用的处理器时间量。所述指令可以在许多 体系结构中实现并且可以被仿真。作为实例,所述指令由处理器在硬件中 执行;或通过由在具有不同本机指令集的处理单元上执行的软件仿真包括 此指令的指令集来执行。在一个特定实例中,所述指令在由国际商业机器 公司提供的z/Architecture中实现,并且在此称为提取CPU时间(ECTG ) 指令。
提取CPU时间指令300 (图3 )是非特权指令,并且包括例如指定提 取CPU时间指令的操作码302a、 302b;通用寄存器304,其内容指定指 令使用的第三操作数;基寄存器306,其可以是处理单元的十六个通用寄 存器中的任何一个,并且包括指令使用的存储器中第一操作数的地址的一 部分;位移值308,其例如是添加到寄存器306的内容中以提供存储器中 第一操作数的地址的无符号12位二进制数;基寄存器310,其也是处理单 元的十六个通用寄存器中的任何一个,并且包括指令使用的存储器中第二 操作数的地址的一部分;以及位移值312,其被添加到寄存器310的内容 中以提供指令的存储器中第二操作数的地址。
除了上述寄存器之外,提取CPU时间指令还隐含地使用两个不必编码 在指令中但由指令使用的通用寄存器。这些寄存器包括通用寄存器0和通 用寄存器l。
通用寄存器0 ( 400,图4a)包括例如自上次分派任务以来的已用时间 402。它是从第一操作数(其内容包括任务分派时的CPU计时器的值)中 减去当前CPU计时器的值产生的差。
通用寄存器1 ( 410;图4b )包括例如当分派任务时任务时间累加器的 值412。这是指令的第二操作数的内容。虽然以上描述了寄存器的实例,但是每个寄存器可以包括更多、更少 或不同的信息。此外,每个寄存器可以包括本发明的一个或多个方面中不 一定需要的其他数据。信息在寄存器内的特定位置与实施方式和/或体系结 构相关。
参考图5描述了与提取CPU时间指令关联的逻辑的一个实施例。作为 一个实例,此指令由处理环境的处理器代表在操作与特定任务相关时请求 操作的非特权用户应用(例如,在问题状态中)执行。提取CPU时间指令 是不调用操作系统服务的非特权指令。但是,在此实施例中假设在分派任 务时已设置CPU计时器(例如计数器、寄存器等)。在一个实例中,计时 器由设置CPU计时器(STP )指令设置,此指令是z/Architecture: Principles of Operation (z/Architecture:操作原理,第SA22曙7832-04号IBM⑧刊物, 2005年9月,在此完全引入作为参考)中描述的特权指令。它还可以由任 何其他方式来设置。计时器被设置为代表用于执行任务的指定时间片的给 定值(例如10-12毫秒)。
响应于执行提取CPU时间指令,确定CPU计时器的当前值(步骤 500)。例如,当处理器处理任务时计时器递减,并且响应于执行提取CPU 时间指令,此时观察计时器的值。这包括例如读取保存计时器的寄存器。 在一个实施例中,可以在任何时间(包括在针对任务提供的时间片结束之 前以及不等待计时器中断)提取计时器的值。
然后从指令的第一操作数中减去CPU计时器的当前值(步骤502)。 第一操作数代表分派任务时的CPU计时器的值。例如,当分派任务时, CPU计时器被设置为选定值(例如10-12毫秒),并且此值被存储在存储 器(例如PSDATSAV)中。因此,PSDATSAV-当前CPU计时器-自上次 分派任务以来的已用处理器时间。将此值^t在通用寄存器0中(步骤504 )。
除了上述之外,在一个实施例中还提取其他信息(步骤506)。作为 一个实例,指令的第二操作数未被改变地放置在通用寄存器1中。第二操 作数包括例如维护任务先前使用的CPU时间总量的任务控制块(例如 TCBTTUSD )的地址。通过提取此信息并将此信息放置在通用寄存器1中,用户应用能够通过将通用寄存器O和通用寄存器1的结果相加来确定至此
使用的处理器时间总量。
此外,在一个实施例中,在指令的第三操作数位置处的信息替换了通
用寄存器R3的内容。此信息包括各种类型的信息,包括但不限于指定对于 任务而言重要或需要的信息的标志、可在出于计费目的调整处理器时间中 使用的比例因数,以及其他类型的信息。
图6中示出了操作的图形表示。( 600 )参考存储器中的第 一操作 数602。从第一操作数604的内容中减去CPU计时器606的当前值。将差 存储在通用寄存器O中(608) 。 B2D2 (610)参考存储器中的第二操作数 612,此操作数的内容未被改变地放置在通用寄存器1中(614)。此外, R3 (616)参考存储器中的第三操作数618,此操作数的内容未被改变地放 置在通用寄存器R3中(620)。
在一个实施例中,以上操作全部在同 一操作单位内发生而不可能被中 断。通过以原子方式执行这些操作,值将保持其含义。
以上详细描述了 一种在没有与昂贵操作系统服务关联的开销和/或不 使用特权操作的情况下有效确定资源使用的工具。具体地说,描述了一种
指令的情况下,能够有效确定所用CPU时间量的提取CPU时间工具。此 工具使应用程序能够准确测量执行特定代码段所需的CPU时间,而没有使 此类测量传统上失真的显著开销。所述测量可用于许多方面,包括但不限 于应用代码和计费的细致调整。所述工具有利地使应用程序能够在任何给 定时刻(而不仅仅在时间片的结尾)有效确定所用任务时间量。这允许程 序在微秒或纳秒范围内有效确定指令计时而不必等待直到经过多个毫秒。
本发明的一个或多个方面可以包括在具有例如计算机可用介质的制品 (例如, 一个或多个计算机程序产品)中。所述介质其中具有例如计算机 可读程序代码装置或逻辑(例如指令、代码、命令等)以提供和促进本发 明的能力。所述制品可以包括为计算机系统的一部分或单独销售。
参考图7描述了结合本发明的一个或多个方面的制品或计算机程序产品的一个实例。计算机程序产品700包括例如一个或多个计算机可用介质 702以在其上存储计算机可读程序代码装置或逻辑704以便提供和促进本 发明的一个或多个方面。所述介质可以是电、磁、光、电磁、红外线或半 导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导 体或固态存储器、磁带、可移动计算机盘、随4踏取存储器(RAM)、只读存 储器(ROM)、硬磁盘和光盘。光盘的实例包括光盘-只读存储器(CD-ROM)、 光盘-读/写(CD-R/W)和DVD。
由一个或多个计算机可读程序代码装置或逻辑定义的一个或多个相关 模块的程序指令序列或逻辑集引导执行本发明的一个或多个方面。
虽然在此提供了一个或多个实例,但是这些仅是实例。可以具有许多 变型而不偏离本发明的精神。例如,不同于在此提供的实例的处理环境可 以包括和/或受益于本发明的一个或多个方面。作为一个实例, 一个或多个 处理器可以不同于IBM System ZTM处理器和/或执行2/08@之外的操作系 统。此外,所述环境不需要基于z/Architecture,而是可以基于例如由Intel、 Sun Microsystems以及其他公司提供的其他体系结构。进而,所述指令可 以包括指定信息的寄存器以外的其他寄存器或实体。此外,寄存器和/或实 体内可以具有不同的数据和/或布置。进而,计时器可以不同于计数器或寄 存器。可以使用任何机制确定资源使用。术语"计时器,,旨在包括广泛的 机制,包括但不限于计数器和寄存器。此外,虽然在此处的实施例中,计 时器递减,但是在其他实施例中,它可以递增和/或遵循某种模式。存在许 多其他变型。
此外,环境可以包括仿真器(例如软件或其他仿真机制),其中仿真 特定体系结构或其子集。在此类环境中,尽管执行仿真器的计算机可能具 有不同于被仿真的能力的体系结构,但是仿真器的一个或多个仿真功能可 以实现本发明的一个或多个方面。作为一个实例,在仿真模式中,解码被 仿真的特定指令或操作,并且构建相应仿真功能以实现单个指令或操作。
在仿真环境中,主机包括例如用于存储指令和数据的存储器;用于从
存储器取回指令并可选地为取回的指令提供本地緩沖的指令取回单元;用于接收指令取回单元并确定已取回指令的类型的指令解码单元;以及用于 执行指令的指令执行单元。执行可以包括将数据载入存储器的寄存器;将 数据从寄存器存储回存储器;或如解码单元所确定的那样执行某种类型的 算术或逻辑运算。在一个实例中,每个单元都在软件中实现。例如,由所 述单元执行的操作被实现为仿真器软件内的一个或多个子例程。
此夕卜,适合于存储和/或执行程序代码的数据处理系统可以包括至少一 个通过系统总线直接或间接连接到存储器元件的处理器。所述存储器元件 包括例如在程序代码的实际执行期间采用的本地存储器、大容量存储装置 以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存 储装置检索代码的次数的高速緩沖存储器。
输入/输出或1/0设备(包括但不限于键盘、显示器、指点设备等)可 以直接或通过中间1/0控制器与系统相连。网络适配器也可以被连接到系 统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处 理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器和以 太网卡只是几种可用的网络适配器类型。
如在此使用的,术语"操作数"不仅包括和/或指指令的操作数,而且 还包括其他操作数,以及在程序的函数之间传递的参数或参量,或任何其 他在实体之间传递的数据。此外,任务包括代码的任何部分,包括整个应 用或程序或其中的任何部分。
本发明的一个或多个方面的能力可以以软件、固件、硬件或它们的某 种组合实现。可以提供至少一个可由机器读取的程序存储设备,所述机器 包括至少 一个可由所述机器执行以执行本发明的功能的指令程序。
在此示出的流程图仅是实例。其中所述的这些图或步骤(或操作)可 以具有许多变型而不偏离本发明的精神。例如,可以按不同的顺序执行所 述步骤,或可以添加、删除或修改所述步骤。所有这些变型均被视为所要 求保护的发明的一部分。
权利要求
1. 一种确定处理环境的任务的中央处理单元时间使用的方法,所述方法包括选择要为其确定中央处理单元时间使用的所述处理环境的任务;以及通过以下操作确定所述任务在特定时间间隔内使用的中央处理单元时间量确定针对所述任务设置的计时器的当前值;以及从保存值中减去所述当前值以确定所述任务在所述特定时间间隔期间使用的已用处理器时间量。
2. 如权利要求l中所述的方法,其中所述确定至少在针对所述任务提 供的时间片结束之前的时间发生。
3. 如权利要求l中所述的方法,还包括将所述已用处理器时间量添加 到所述任务的累加值以确定所述任务至此使用的处理器时间总量。
4. 如权利要求3中所述的方法,还包括提取所述累加值,其中确定所 述已用处理器时间量和提取所述累加值作为单个操作单位发生。
5. 如权利要求l中所述的方法,其中使用指令执行所述确定。
6. 如权利要求5中所述的方法,其中所述指令使能提取其他信息。
7. 如权利要求6中所述的方法,其中所述提取其他信息和所述确定作 为单个不间断的操作单位发生。
8. 如权利要求l中所述的方法,其中由与所述任务关联的计时器的开 始时间和所述计时器的结束时间来定义所述特定时间间隔。
9. 如权利要求l中所述的方法,其中所述方法还包括提取与所述任务 相关的其他信息,其中确定所述已用处理器时间量和所述提取作为单个操 作单位发生。
10. —种系统,所述系统包括适于执行根据任一上述方法权利要求的 方法的所有步骤的装置。
11. 一种计算机程序,包括当在计算机系统上执行所述计算^14呈序时, 用于执行根据任一上述方法权利要求的方法的所有步骤的指令。
全文摘要
一种用于确定资源使用(如任务使用的处理器时间)的有效工具。代表不需要调用操作系统服务的用户应用执行所述确定。所述工具包括指令,所述指令作为单个操作单位确定已用时间并将其报告给用户。
文档编号G06F11/34GK101443738SQ200680054604
公开日2009年5月27日 申请日期2006年12月20日 优先权日2006年5月19日
发明者D·格雷纳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1