CN102576327A - 增强监控机构 - Google Patents

增强监控机构 Download PDF

Info

Publication number
CN102576327A
CN102576327A CN2010800431657A CN201080043165A CN102576327A CN 102576327 A CN102576327 A CN 102576327A CN 2010800431657 A CN2010800431657 A CN 2010800431657A CN 201080043165 A CN201080043165 A CN 201080043165A CN 102576327 A CN102576327 A CN 102576327A
Authority
CN
China
Prior art keywords
monitor
bit
monitoring
instruction
code
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
CN2010800431657A
Other languages
English (en)
Other versions
CN102576327B (zh
Inventor
D.格里纳
R.罗格斯
R.圣约翰
J.马尔德
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102576327A publication Critical patent/CN102576327A/zh
Application granted granted Critical
Publication of CN102576327B publication Critical patent/CN102576327B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

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

Abstract

一种可在两种模式下操作的监控机构,其允许与先前已有的监控机构的兼容性。在一种模式下,响应于遇到监控的事件,产生中断。在另一种模式下,响应于遇到监控的事件,递增一个或多个相关联的计数器,而不引起中断。

Description

增强监控机构
技术领域
本发明一般地涉及计算环境中的处理,并且具体涉及在处理期间发生的监控事件。
背景技术
这些年来,使用了不同的监控工具来监控处理事件。一种这样的工具是用于监控由国际商业机器公司提供的系统中的处理的监控(monitor)调用(MC)指令。监控调用指令给程序提供了监控通过监控类别和监控掩码(mask)表示的感兴趣的关键区域的能力。监控掩码允许控制程序(例如操作系统)使能16个可能的监控类别中的一个或多个。当执行指定所使能的监控类别的监控调用指令(即,设置用于指定类别的掩码比特)时,发生监控事件程序中断,并且控制程序可以基于在该指令中指定的监控代码来记录信息。当执行监控调用指令,但是所指定的监控类别不对应于所使能的监控掩码比特时,该指令充当无操作(NOP)。
监控调用指令例如用于对所编制的(instrumented)代码路径的执行进行计数。该计数是使用计数程序执行的。多年来,计数程序被用于确定各种关键操作系统事件的频率,作为示例,所述关键操作系统事件包括管理程序调用(SVC)、锁定、中断、存储器分配和释放、调度、排队和取消排队等等。
发明内容
使用先前已有的监控调用机制的计数操作需要大量的开销,包括进行程序中断,建立恢复环境,执行计数操作,然后在返回到中断的程序之前反转该过程。
根据本发明的一个方面,提供了一种增强监控机构(facility),其允许处理器固件(例如毫代码)高效地更新由监控调用指令指定的计数器而无需中断。该增强监控机构提供了与先前已有的功能兼容的增强功能。
通过提供一种用于便利于在计算环境内进行监控的计算机程序产品,克服了现有技术的缺点,并且提供了额外的优点。该计算机程序产品包括可由处理电路读取并存储指令的存储介质,所述指令用于由处理电路执行以便执行一方法。该方法例如包括:执行机器指令以便监控计算环境的事件,所述执行包括通过机器指令指定要监控的事件;以及递增与被监控的事件相关联的计数器而不进行中断。
在这里还描述了并且要求保护涉及本发明的一个或多个方面的方法和系统。此外,还描述了涉及本发明的一个或多个方面的服务,并且在这里可以要求保护所述服务。
通过本发明的技术实现附加特征和优点。在这里,详细描述本发明的其他实施例和方面,并且本发明的其他实施例和方面被视为所要求保护的发明的一部分。
附图说明
在说明书结尾处的权利要求中,作为示例而具体地指出并且清楚地要求保护本发明的一个或多个方面。根据结合附图的以下详细描述,本发明的前述和其他目的、特征和优点是显而易见的,在附图中:
图1示出包含并使用本发明的一个或多个方面的计算环境的一个示例;
图2示出根据本发明的一个方面使用的监控调用指令的格式的一个示例;
图3示出根据本发明的一个方面使用的控制寄存器的一个示例;
图4示出根据本发明的一个方面的计数器阵列和与其相关联的结构的一个示例;
图5A-5B示出与本发明的一个方面相关联的监控逻辑的一个示例;
图6示出包含本发明的一个或多个方面的计算机程序产品的一个实施例。
具体实施方式
根据本发明的一个方面,提供了一种增强监控机构,其允许执行监控而不引起中断。该增强监控机构与先前已有的监控机构兼容,原因在于:根据某些字段的设置,要么选择引起中断的先前已有的监控机构(第一操作模式),要么选择不引起中断的本发明的增强机构(第二操作模式)。尽管利用增强机构不进行中断,但是执行监控,该监控提供例如事件的计数。
参照图1来描述包含和使用本发明的一个或多个方面的计算环境的一个实施例。计算环境100例如包括经由例如一条或多条总线108或其他连接彼此耦接的至少一个处理器102(例如中央处理单元(CPU))、存储器104(例如主存储器)以及一个或多个输入/输出设备106。
作为一个示例,计算环境100基于由国际商业机器公司提供的
Figure BDA0000147719150000031
其示例在通过引用而被整体合并于此的“z/Architecture-Principles of Operation”,SA22-7832-07,2009年2月中进行了描述。在该示例中,处理器102是由国际商业机器公司提供的eServer
Figure BDA0000147719150000032
服务器,并且它执行诸如也是由国际商业机器公司提供的
Figure BDA0000147719150000033
操作系统的操作系统。
Figure BDA0000147719150000035
是美国纽约州阿芒克的国际商业机器公司的注册商标。在这里使用的其他名称可能是国际商业机器公司或其他公司的注册商标、商标或产品名称。
根据本发明的一个方面,经由监控机构来监控计算环境100内的处理。该监控机构包括例如监控调用指令,该指令使得当在被监控的程序中到达所选择的点时能够采取动作。也就是说,在所监控的程序中的期望点处植入监控调用指令,并且,当到达那些点时,采取动作。作为示例,所述动作包括将控制经由中断传递给监控程序,或者,根据本发明的一个方面,更新一个或多个计数而不进行中断。监控在执行各种测量功能时有用。例如,可以生成指示执行了哪些程序的追踪信息,可以生成指示特定程序被多频繁地使用的计数信息;以及可以生成指示特定程序执行所需的时间量的定时信息。
参照图2描述监控调用指令的一个示例。在此具体示例中,监控调用指令是
Figure BDA0000147719150000036
的一部分,并且在通过引用而被整体合并于此的“z/Architecture-Principles of Operation”,SA22-7832-07,2009年2月中描述了在本发明之前存在的指令的各方面。尽管提供了该具体示例,但是对监控调用指令的格式的很多修改都是可能的,并且被视为所要求保护的发明的一部分。
参照图2,在一个示例中,监控调用指令200包括:8比特操作代码202(例如“AF”),其指定监控调用指令;索引字段(I2)204,其包括例如指定16个监控类别之一的4比特无符号二进制数;以及通过B1 206和D1 208指定的第一操作数地址,其形成如下所述使用的监控代码。在此示例中,B1长度为4比特,D1长度为12比特。当B1不等于0时,B1是寄存器位置,其内容被加到D1字段上以产生操作数地址,其中该操作数地址不是用来对操作数进行寻址,而是用来提供监控代码。
当在程序中到达监控调用指令时,执行该指令。在执行期间,检查至少一个监控掩码组,以确定是否要执行监控事件。所述至少一个监控掩码组被包括在诸如控制寄存器(CR)8的控制寄存器中。具体地,在此示例中,CPU具有16个控制寄存器,每个具有64个比特位置。寄存器中的比特位置被分配给系统中的特定机构,并且被用来指明可以进行操作或者用来提供所述机构需要的特殊信息。
控制寄存器由编号0-15标识,并且由指令“加载控制”和“存储控制”中的4比特的R字段来指定。可以通过这些指令来对多个控制寄存器寻址。加载控制(LCTLG)指令使得从存储器加载由所述指令指定的那些寄存器中的所有控制寄存器比特位置。图3中示出了控制寄存器8的一个示例。
参照图3,控制寄存器300包括第一监控掩码组302以及第二监控掩码组304。在该具体实施例中,第一监控掩码组位于控制寄存器的比特48-63中,并且被用于先前已有的监控机构以及增强监控机构,而第二监控掩码组位于比特16-31中,并且被用于增强监控机构。每个掩码组例如包括与16个监控类别相对应的16个掩码指示符(例如比特)。对于要监控的每个类别,在第一监控掩码组中设置其对应的掩码比特。例如,如果要监控类别3和7,则在第一监控掩码组中设置掩码比特3和7。此外,第二监控掩码组中的每个掩码比特对应于其在第一监控掩码组中的掩码比特,并且在要使用增强机构时进行设置。例如,如果要监控类别3和7并且要使用增强机构,则设置第一监控掩码组和第二监控掩码组中的比特3和7(例如,将其设置为等于1)。在此示例中,控制程序(例如操作系统)基于用户输入来设置所述比特。此外,所述类别是用户定义的,并且可以表示任何要监控的事件。它们是由操作系统建立的。例如,可以设立类别以便对管理程序调用进行计数,并且操作系统将把特定的类别编号分配给管理程序调用。然后,在所监控的程序中,在管理程序调用周围,插入监控调用指令,并且设置该指令的I2字段以监控该类别。可以将类别分配给任何其他希望的事件,并且类似地监控所述事件。
在先前已有的监控机构中,当执行监控调用指令时,检查第一监控掩码组中与在I2字段中的比特4-7中指定的监控类别相对应的监控掩码比特。如果该比特为1,则发生监控事件程序中断。将通过第一操作数地址形成的监控代码置于真实存储器位置176处的双字中;将I2字段的内容存储在真实存储器位置149上,其中0被存储在真实存储器位置148上;将程序中断代码的比特9设置为1。
根据本发明的一个方面,当与I2字段指定的类别相对应的监控掩码比特为1时,不总是进行中断。作为替代,毫代码执行监控而不进行中断。在执行此监控时,使用连续计数器阵列。在图4中示出了该阵列的一个示例。
如所示出的那样,计数器阵列400包括多个半字项402和多个全字项404。在一个具体示例中,该阵列为64字节,被存储在起始地址(home address)空间中,并且由操作系统初始化。半字项位于连续的位置上,并且占用与增强监控计数器阵列限值(又称为限值)×2相等的空间量。全字项被存储在紧跟在半字项之后的连续位置上,并且它们占用等于所述限值×4的空间量。
此外,在一个示例中,利用增强监控计数器阵列起点410来指示所述阵列的起点,所述增强监控计数器阵列起点410由操作系统设置,并且例如被存储在真实存储器地址256(100Hex)。此外,对于增强监控机构的处理,使用由操作系统初始化的附加结构,其包括存储在真实存储器位置264(108Hex)的增强监控计数器阵列限值(limit)412、以及存储在位置268(10Hex)的增强监控异常计数414。
参照图5A-5B描述与增强监控机构相关联的处理的一个实施例。在一个示例中,由固件(例如在处理器上执行的毫代码)执行该逻辑。
参照图5A,初始地,在步骤500,例如从监控调用指令,具体地从该指令的I2字段的比特4-7获得监控类别。具体地,所述I2字段包括4比特无符号二进制数,其表示要监控的类别,并且形成对控制寄存器8的比特48-63中的16个监控掩码的索引。
检查I2字段所指向的第一监控掩码组中的掩码比特(例如控制寄存器8的比特48-63中的掩码比特)。例如,如果I2字段包括表示类别3的值3,则检查第一掩码组中的掩码比特3。如果在询问(INQUIRY)502,它的值不等于1,则在步骤504,该指令充当无操作并且结束。然而,如果所指定的掩码比特(在第一监控掩码组中)被设置为1,则在询问506,处理继续确定是否安装了增强监控机构。可以通过检查指示符来进行该确定,或者可以暗示该确定。如果没有安装增强监控机构,则在步骤508进行中断。因此,在该示例中,通过第一操作数地址(例如D1(B1))形成的监控代码被置于真实存储器位置176的双字中;I2字段的内容被存储在真实存储器位置149,其中0被存储在真实存储器位置148;程序中断代码的比特9被设置为1。
然而,如果在询问506安装了增强监控机构,则在询问510,对第二监控掩码组中的对应掩码比特(例如CR 8的比特16-31)是否等于1进行进一步的确定。例如,如果检查第一监控掩码组中的掩码比特3,则检查第二监控掩码组中的掩码比特3。如果第二监控掩码组中的指定掩码比特没有被设置(例如等于0),则在步骤508,进行中断,并且处理如上所述地继续进行。否则,执行监控事件计数操作,如下所述。
初始地,在步骤512,将监控代码设置为第一操作数地址D1(B1),并且在询问514对监控代码是否大于或等于增强监控计数器阵列限值进行确定(图5B)。具体地,在一个示例中,将包含在真实存储器位置264的字中的、在左侧扩展了32个二进制零的增强监控计数器阵列大小(或限值)与通过第一操作数地址形成的监控代码进行逻辑比较。如果在询问514,监控代码大于或等于增强监控计数器阵列限值,则在步骤516,将1与包含在真实存储器位置268的字中的增强监控异常计数进行逻辑相加,并且在步骤518,该指令完成。忽略作为该相加的结果的任何进位。
返回询问514,如果监控代码小于增强监控计数器阵列限值(在左端扩展了32个0),则将1加到对应于该监控代码的增强监控计数器上。增强监控计数器包括两个不连续的存储位置:无符号半字,其首先被递增;以及无符号字(又称为全字),其每当出现半字加法的比特位置0以外的进位时被递增。这在下面更详细地描述。
在右侧附加了3个二进制0的、真实存储器位置256的双字的比特0-60中的增强监控计数器阵列起点形成起始地址空间中的增强监控计数器阵列的64比特的虚拟地址。真实存储器位置264的增强监控计数器阵列大小字段指定阵列中的半字和字项的数目;阵列中的半字项首先出现,紧接着出现字项。
在步骤520,将乘以2的监控代码加到增强监控计数器阵列起点以形成半字的虚拟地址,该虚拟地址被用作指向期望半字项的指针。然后,在步骤522,将1与由该半字指针指定的半字项的内容逻辑相加。如果在询问524此相加产生半字的比特位置0以外的进位,则将1与对应的字逻辑相加。也就是说,在步骤526,将乘以2的增强监控计数器阵列大小值加到乘以4的监控代码上;将该值加到增强监控计数器阵列起点上以形成所述字的地址,该地址被用作指向与所述半字项相对应的字项的指针。然后,在步骤528,将1与该字指针指定的字项的内容逻辑相加。这使得处理结束。
上面详细描述了保持了与先前已有的监控机构的兼容性的增强监控机构。响应于监控调用指令的执行,要么进行中断(已有的机构),要么CPU固件更新计数器而没有中断或者操作系统或应用程序的干涉(增强机构)。该增强机构允许将计数器阵列保存在起始地址空间中,这提供了更宽的计数器范围、计数器值域(range)的增大、以及提高高速缓存利用率的分开的2比特计数器和4比特计数器;它允许通过毫代码执行的计数器的更新,这比通过操作系统程序中断句柄的路径更加高效;并且它提供了异常计数器,这消除了对于程序指定的异常处置的需要(例如,假设适当地设置了阵列地址和限值,则消除了通过毫代码处置的超限异常和寻址异常)。与硬连线计数器相反,增强机构允许调用基于用户定义的计数器位置的计数技术。
监控调用指令是计算机程序的指令,并且该指令的执行使用机器指令定义的类别来标识事件。该指令可以以两种模式操作:第一模式——中断模式,以及第二模式——非中断模式。响应于计算环境处于第二模式(非中断模式)并且遇到所述指令标识的事件,将计数器(存储器位置)递增,并且处理继续进行到执行该计算机程序的下一指令。响应于计算环境处于第一模式并且遇到所述指令标识的事件,从计算机程序进行中断至中断句柄例程,而不递增计数器。
如本领域技术人员将认识到的,可以作为系统、方法或计算机程序产品来实施本发明的各方面。因此,本发明的各方面可以采取全硬件实施例的形式、全软件实施例(包括固件、驻留软件、微代码等)的形式、或者组合了在这里均可通称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明的各方面可采取在一个或多个计算机可读介质中包含的计算机程序产品的形式,所述计算机可读介质具有包含于其上的计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。该计算机可读介质可以是计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光或半导体系统、装置、或设备,或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽性列举)包括以下各项:具有一条或多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者前述各项的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储程序以便由指令执行系统、装置或设备使用或者结合所述指令执行系统、装置或设备使用的任何有形介质。
现在参照图6,在一个示例中,计算机程序产品600例如包括一个或多个计算机可读介质602以便在其上存储计算机可读程序代码部分或逻辑604,从而提供和便利于本发明的一个或多个方面。
可以使用适当的介质传送在计算机可读介质上包含的程序代码,所述介质包括但不限于无线、有线、光纤光缆、RF等,或者前述各项的任何适当组合。
用于执行本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,所述编程语言包括:面向对象编程语言,例如Java、Smalltalk、C++等;以及传统的过程编程语言,例如“C”编程语言或类似编程语言。该程序代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上并且部分地在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以形成到外部计算机的连接(例如,使用因特网服务提供商通过因特网)。
在这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本发明的各方面。将理解:可以通过计算机程序指令来实现所述流程图图示和/或框图的每个块、以及所述流程图图示和/或框图中的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机、或者其他可编程数据处理装置的处理器以便产生机器,使得经由所述计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的部件。
也可以将这些计算机程序指令存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或者其他设备以特定的方式发挥作用,使得存储在计算机可读介质中的指令产生一种制造产品,该制造产品包括实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的指令。
也可以将计算机程序指令加载到计算机、其他可编程数据处理装置或者其他设备上,以使得在计算机、其他可编程装置或者其他设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的过程。
附图中的流程图和框图图示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这一点上,所述流程图或框图中的每个块可以表示模块、片段或代码部分,其包括用于实现指定的一个或多个逻辑功能的一个或多个可执行指令。还应当注意,在某些替代实现方式中,块中标注的功能可以不按照图中标注的顺序进行。例如,连续示出的两个块实际上可以基本同时地执行,或者根据所涉及的功能,有时候可以按照相反的顺序执行所述块。还将注意到,可以通过执行指定的功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现所述框图和/或流程图图示的每个块、以及所述框图和/或流程图图示中的块的组合,所述系统。
除了上文所述,还可以由服务提供商提供、供应、部署、管理、服务等本发明的一个或多个方面,所述服务提供商提供客户环境的管理。例如,服务提供商可以为一个或多个客户创建、维持、支持等执行本发明的一个或多个方面的计算机代码和/或计算机基础架构。作为示例,作为报答,服务提供商可以从用户收到在订购和/或费用协议下的付款。附加地或者可替换地,服务提供商可以收到来自向一个或多个第三方销售广告内容的付款。
在本发明的一个方面中,可以部署用于执行本发明的一个或多个方面的应用。作为一个示例,应用的部署包括提供可操作以执行本发明的一个或多个方面的计算机基础架构。
作为本发明的另一方面,可以部署计算基础结构,其包括将计算机可读代码集成到计算系统中,其中,与计算系统相结合的代码能够执行本发明的一个或多个方面。
作为本发明的另一方面,可以提供一种用于集成计算基础架构的过程,集成计算基础架构包括将计算机可读代码集成到计算机系统中。所述计算机系统包括计算机可读介质,其中,所述计算机介质包括本发明的一个或多个方面。与计算机系统相结合的代码能够执行本发明的一个或多个方面。
尽管在上面描述了各种实施例,但它们只是示例。例如,其他架构的计算环境可以包含和使用本发明的一个或多个方面。此外,可以使用其他处理器和/或操作系统。另外,尽管在这里描述了特定的比特、字节、操作代码和/或位置,但它们只是示例。存在很多变型,而不背离本发明的精神。此外,计数器阵列可以具有不同的结构和/或大小。此外,除了比特以外,可以使用或多或少的掩码和指示符。另外,可以有或多或少的类别,在这里提供的示例仅仅是示例。可以向其他和/或不同的事件分配类别并且监控所述事件,所述事件包括但不限于指令、存储器分配、或者其他类型的事件。所述监控可以执行除了计数以外的任务。此外,在中断期间或者在监控时采取的具体动作可以不同于这里描述的动作。
而且,其他类型的计算环境可以受益于本发明的一个或多个方面。作为示例,环境可以包括模拟器(例如软件或其他模拟机制),其中,模拟特定架构(例如包括指令执行、诸如地址转换之类的构造的功能以及构造的寄存器)或者其子集(例如在具有处理器和存储器的本地计算机系统上)。在这种环境中,模拟器的一个或多个模拟功能可以实现本发明的一个或多个方面,即使执行该模拟器的计算机可以具有与所模拟的能力不同的架构。作为一个示例,在模拟模式中,将所模拟的特定指令或操作解码,并且构建适当的模拟功能以实现单独的指令或操作。
在模拟环境中,主机计算机例如包括:存储器,用于存储指令和数据;指令提取单元,用于从存储器提取指令,并且可选地提供用于所提取的指令的本地缓冲;指令解码单元,用于接收所提取的指令,并且确定已经提取的指令的类型;以及指令执行单元,用于执行所述指令。执行可以包括将数据从存储器加载到寄存器中;将数据从寄存器存储回存储器;或者执行某种类型的算术或逻辑运算,如解码单元所确定的那样。在一个示例中,用软件来实现每个单元。例如,作为模拟器软件内的一个或多个子例程来实现由所述单元执行的操作。
此外,可以使用适合于存储和/或执行程序代码的数据处理系统,其包括至少一个通过系统总线直接或间接耦接到存储元件的处理器。所述存储元件例如包括在实际执行程序代码期间采用的本地存储器、大容量存储器、以及高速缓冲存储器,所述高速缓冲存储器提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储器取回代码的次数。
可以将输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备、DASD、磁带、CD、DVD、拇指驱动器和其他存储介质等)直接或者通过中间的I/O控制器耦接到系统。也可以将网络适配器耦接到系统,以使得数据处理系统变得能够通过中间的专用或公共网络耦接到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器以及以太网卡只是几种可以获得的网络适配器。
在这里使用的术语只是出于描述特定实施例的目的,而非意图限制本发明。如这里使用的,单数形式“一”和“所述”意图是也包括复数形式,除非上下文清楚地以其他方式指出。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指明存在所述特征、整数、步骤、操作、元件和/或组件,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或附加。
所附权利要求中的所有部件或步骤加功能元素的对应结构、材料、动作、以及等效物(如果有的话)意图是包括用于结合其他被要求保护的元素执行所述功能的任何结构、材料或动作,如所具体要求保护的那样。出于说明和描述的目的而提供了对本发明的描述,但是该描述意图不是穷尽性的或者以所公开的形式限制本发明。对于本领域普通技术人员来说,很多修改和变化将是显而易见的,而不背离本发明的范围和精神。选择和描述所述实施例,以便最佳地解释本发明的原理以及实际应用,并且使得本领域其他普通技术人员能够针对适合于所构想的特定用途的具有各种修改的各种实施例而理解本发明。

Claims (11)

1.一种通过执行机器指令来监控计算环境的事件,而便利于在计算环境中进行监控的方法,包括以下步骤:
确定(506)增强监控机构是否安装在计算环境中;
如果确定增强监控机构未安装在计算环境中,则经由中断(508)将控制传递给监控程序(508);以及
如果确定增强监控机构安装在计算环境中,则执行监控事件计数操作,其包括:
确定(510)控制寄存器中的掩码比特具有值1,其中掩码比特位置表示监控类别:和
响应于所述掩码比特具有值1而执行监控事件计数操作。
2.如权利要求1所述的方法,其中,执行监控事件计数操作包括:
将监控代码值与计数器阵列的限值进行比较,所述计数器阵列包括所述计数器;
响应于该比较提供第一结果,递增计数器阵列的计数器;以及
响应于该比较提供第二结果,递增异常计数。
3.如权利要求2所述的方法,其中,第一结果包括所述代码值小于所述限值,第二结果包括所述代码值大于或等于所述限值。
4.如权利要求2所述的方法,其中,所述计数器阵列包括多个半字项,所述多个半字项之后跟随多个全字项。
5.如权利要求4所述的计算机程序产品,其中,所述计数器位于通过半字指针标识的计数器阵列的半字项中,并且,响应于半字项的溢出状态,计数器还位于由全字指针指定的计数器阵列的全字项中。
6.如权利要求5所述的计算机程序产品,其中,将半字指针设置为(监控代码×2)+计数器阵列的起点,并且将全字指针设置为(监控代码×4)+(所述限值×2)+所述起点。
7.如权利要求1所述的方法,其中,所述机器指令包括监控调用指令,所述监控调用指令包括指定监控调用指令的操作代码、指定要监控的类别的索引字段、以及指定在所述机器指令的处理期间可用的监控代码的第一操作数字段。
8.如权利要求7所述的方法,其中,所述操作代码位于监控调用指令的指令格式的比特0-7中,索引字段位于比特8-15中,第一操作数字段位于比特16-31中,第一操作数字段包括比特16-19中的基本部分和比特20-31中的偏移部分。
9.如权利要求1所述的方法,其中,通过机器指令的索引字段来标识控制寄存器中的掩码比特位置。
10.一种系统,包括被适配用于执行如任一前述方法权利要求所述的方法的所有步骤的部件。
11.一种计算机程序,包括用于当所述计算机程序在计算机系统上被执行时,执行如任一前述方法权利要求所述的方法的所有步骤的指令。
CN201080043165.7A 2009-09-29 2010-09-22 用于监控计算环境的方法和系统 Active CN102576327B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/568,748 US8572357B2 (en) 2009-09-29 2009-09-29 Monitoring events and incrementing counters associated therewith absent taking an interrupt
US12/568,748 2009-09-29
PCT/EP2010/063952 WO2011039085A1 (en) 2009-09-29 2010-09-22 Enhanced monitor facility

Publications (2)

Publication Number Publication Date
CN102576327A true CN102576327A (zh) 2012-07-11
CN102576327B CN102576327B (zh) 2014-12-17

Family

ID=43446369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080043165.7A Active CN102576327B (zh) 2009-09-29 2010-09-22 用于监控计算环境的方法和系统

Country Status (6)

Country Link
US (2) US8572357B2 (zh)
EP (1) EP2430546B1 (zh)
JP (1) JP5588006B2 (zh)
CN (1) CN102576327B (zh)
RU (1) RU2560812C2 (zh)
WO (1) WO2011039085A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572357B2 (en) * 2009-09-29 2013-10-29 International Business Machines Corporation Monitoring events and incrementing counters associated therewith absent taking an interrupt
US8954803B2 (en) * 2010-02-23 2015-02-10 Mosys, Inc. Programmable test engine (PCDTE) for emerging memory technologies
WO2012155968A1 (en) * 2011-05-18 2012-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for enabling analysis of a computer program execution
US9208134B2 (en) * 2012-01-10 2015-12-08 King Abdulaziz City For Science And Technology Methods and systems for tokenizing multilingual textual documents
US8988956B2 (en) 2012-09-18 2015-03-24 Mosys, Inc. Programmable memory built in self repair circuit
US10282327B2 (en) * 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH042747A (ja) * 1990-04-19 1992-01-07 Furukawa Alum Co Ltd アルミニウム合金制振材料の製造方法
US5875294A (en) * 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
JP2000347863A (ja) * 1999-05-13 2000-12-15 Internatl Business Mach Corp <Ibm> 投機的プロセッサ内で非投機的イベントをカウントするための方法およびシステム
US20030036883A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corp. Extending width of performance monitor counters
US20050081101A1 (en) * 2003-09-27 2005-04-14 Love Carl E. Implementation-efficient multiple-counter value hardware performance counter
JP2006221606A (ja) * 2005-01-17 2006-08-24 Renesas Technology Corp データプロセッサ
US20070271566A1 (en) * 2006-05-19 2007-11-22 International Business Machines Corporation Extract CPU time facility
CN100383754C (zh) * 2004-01-14 2008-04-23 国际商业机器公司 发生中断时按其类型限定性能监视事件收集的方法与装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6442747A (en) * 1987-08-11 1989-02-15 Hitachi Ltd Hardware monitoring device
RU2030784C1 (ru) * 1992-01-31 1995-03-10 Арендное предприятие "20-й Подшипниковый завод" Устройство для поиска перемежающихся неисправностей в микропроцессорных системах
US5454086A (en) * 1992-08-11 1995-09-26 International Business Machines Corporation Dynamic program analyzer facility
US5485574A (en) 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs
AU2364095A (en) * 1994-05-12 1995-12-05 Ast Research, Inc. Cpu activity monitoring through cache watching
JP3739797B2 (ja) * 1995-10-06 2006-01-25 パトリオット サイエンティフィック コーポレイション 縮小命令セット・コンピューター・マイクロプロセッサーの構造
RU2099777C1 (ru) * 1996-03-28 1997-12-20 Курский государственный технический университет Устройство для поиска перемежающихся отказов в микропроцессорных системах
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US6654934B1 (en) * 2002-03-28 2003-11-25 Cyrpess Semiconductor Corporation Programmable event engine
JP2007241918A (ja) 2006-03-13 2007-09-20 Fujitsu Ltd プロセッサ装置
US8572357B2 (en) 2009-09-29 2013-10-29 International Business Machines Corporation Monitoring events and incrementing counters associated therewith absent taking an interrupt

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH042747A (ja) * 1990-04-19 1992-01-07 Furukawa Alum Co Ltd アルミニウム合金制振材料の製造方法
US5875294A (en) * 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
JP2000347863A (ja) * 1999-05-13 2000-12-15 Internatl Business Mach Corp <Ibm> 投機的プロセッサ内で非投機的イベントをカウントするための方法およびシステム
US20030036883A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corp. Extending width of performance monitor counters
US20050081101A1 (en) * 2003-09-27 2005-04-14 Love Carl E. Implementation-efficient multiple-counter value hardware performance counter
CN100383754C (zh) * 2004-01-14 2008-04-23 国际商业机器公司 发生中断时按其类型限定性能监视事件收集的方法与装置
JP2006221606A (ja) * 2005-01-17 2006-08-24 Renesas Technology Corp データプロセッサ
US20070271566A1 (en) * 2006-05-19 2007-11-22 International Business Machines Corporation Extract CPU time facility
EP1860567A1 (en) * 2006-05-19 2007-11-28 International Business Machines Corporation Extract CPU time facility

Also Published As

Publication number Publication date
EP2430546A1 (en) 2012-03-21
WO2011039085A1 (en) 2011-04-07
US20120198216A1 (en) 2012-08-02
EP2430546B1 (en) 2015-10-21
RU2560812C2 (ru) 2015-08-20
JP5588006B2 (ja) 2014-09-10
US20110078421A1 (en) 2011-03-31
CN102576327B (zh) 2014-12-17
US8572357B2 (en) 2013-10-29
RU2012147516A (ru) 2014-05-20
JP2013506177A (ja) 2013-02-21
US8489867B2 (en) 2013-07-16

Similar Documents

Publication Publication Date Title
CN102754069B (zh) 用于处理加载/存储分离指令的方法和系统
US9489229B2 (en) Transparent dynamic code optimization
CN101110017B (zh) 一种组合指令的技术
US11080052B2 (en) Determining the effectiveness of prefetch instructions
TWI304548B (en) Method, system, computer readable recording medium recording instructions for counting instruction execution and data accesses for specific types of instructions
CN102103483B (zh) 汇聚和散布多个数据元素
CN102947794B (zh) 用于处理器功能查询的功能虚拟化设施
CN100382061C (zh) 按照类型对中断计数的方法和装置
TWI551986B (zh) 用於自較低特殊權限狀態控制執行階段檢測設施之操作之電腦程式產品、方法及其系統
CN102576327B (zh) 用于监控计算环境的方法和系统
CN103562874B (zh) 解除配置存储级内存命令
CN101443738B (zh) 提取cpu时间工具
CN104364772A (zh) 事务环境内的程序事件记录
CN104937542A (zh) 向量校验和指令
CN104412232A (zh) 事务处理
CN104335181A (zh) 事务诊断区块
TW202138996A (zh) 切換影堆疊指標的硬體設備以及方法
CN104956323A (zh) 向量伽罗瓦域乘法求和与累加指令
CN104335186A (zh) 处理器辅助设施
CN104956319A (zh) 向量浮点测试数据类立即指令
CN104937538A (zh) 向量生成掩码指令
CN107003853A (zh) 用于数据推测执行的系统、装置和方法
TWI668568B (zh) 用於管制受防護儲存器設施之操作之載入及儲存控制之電腦程式產品、電腦系統及電腦實施方法
CN104937543A (zh) 向量元素旋转和掩码下插入指令
TW201403313A (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
C14 Grant of patent or utility model
GR01 Patent grant