Patents by Inventor Robert John Urquhart
Robert John Urquhart has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20040123084Abstract: A method and system for enabling tracing of a repeat instruction are provided. A repeat instruction is executed within a processor. In response to detecting a repeat instruction flag set during a last execution of the repeat instruction, an interrupt is initiated within the processor. The processor enables reading a count of executions for the repeat instruction from a storage unit within the processor by a trace program or external hardware during the interrupt.Type: ApplicationFiled: December 19, 2002Publication date: June 24, 2004Applicant: International Business Machines CorporationInventors: Jimmie Earl DeWitt, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6662359Abstract: The present invention is directed to a system, method and instructions for handling path flow exception and finalization processing in an object oriented programming language. Initially, each instrumentation method is checked for a code to indicated an exception being thrown. A hook is inserted before the exception code and identifies the method throwing the exception. Methods must also be checked for exception tables. When an exception table is found, then a hook is inserted at the entry point of each exception handler for every entry in the exception table. This hook identifies the method which catches the exception.Type: GrantFiled: July 20, 2000Date of Patent: December 9, 2003Assignee: International Business Machines CorporationInventors: Robert Francis Berry, John Day Howard, Riaz Y. Hussain, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6658654Abstract: A low-overhead performance measurement of an application executing in a data processing system is provided in order to generate per-thread performance information in a multithreaded environment. While a first set of events is being monitored for a particular thread as a first metric, events that may indirectly cause inaccuracies in the first metric, such as thread switches, are also monitored as a second metric. The presence of a positive value for the second metric is then used to determine that the first metric is inaccurate or unreliable, after which the first metric may be discarded; otherwise, the first metric is considered accurate. For example, the first metric may then be considered a thread-relative metric as it has been observed during a time period in which no thread switch events or interrupt events would have caused the first metric to become inaccurate during the execution of a particular thread.Type: GrantFiled: July 6, 2000Date of Patent: December 2, 2003Assignee: International Business Machines CorporationInventors: Robert Francis Berry, Robert Tod Dimpsey, Frank Eliot Levine, Enio Manuel Pineda, Robert John Urquhart
-
Publication number: 20030135789Abstract: A method, system, apparatus, and computer program product is presented for tracing operations. A set of related methodologies can be used within instruction tracing software, such as a tracing program, to reduce its tendency to generate interrupts that cause unwanted effects in the system that is being captured. A first methodology allows access to protected memory blocks so that instructions may be read from those memory blocks. A second methodology provides for the trace output buffer to be accessed using physical addressing. A third methodology traces only instruction addresses, which are resolved later during a post-processing phase of operation. A fourth methodology comprises multiple different methods for obtaining copies of instructions that have already executed rather than obtaining them before they are executed.Type: ApplicationFiled: January 14, 2002Publication date: July 17, 2003Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Jimmie Earl DeWitt, Riaz Y. Hussain, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6553564Abstract: A process and system for profiling code executing on a data processing system is provided. Event-based trace data is recorded in response to selected events, and the event-based trace data includes an indication of which code is being interrupted. The trace data may be processed to identify a thread or method that was executing during the event. A periodically occurring event is also detected, and a stack associated with the profiled code is identified in response to detection of the periodically occurring event, such as a timer interrupt. The stack is examined to identify each routine that is currently executing during the periodically occurring event.Type: GrantFiled: June 30, 1999Date of Patent: April 22, 2003Assignee: International Business Machines CorporationInventors: William Preston Alexander, III, Robert Francis Berry, Frank Eliot Levine, Chester Charles John, Jr., Robert John Urquhart
-
Patent number: 6513155Abstract: A process and system for profiling code executing on a data processing system is provided. Event-based trace data is recorded in response to selected events, and the event-based trace data includes an indication which code is being interrupted. The trace data may be processed to identify a thread or method that was executing during the event. A periodically occurring event is also detected, and a call stack associated with the profiled code is identified in response to detection of the periodically occurring event, such as a timer interrupt. The call stack is examined to identify each routine that is currently executing during the periodically occurring event, and the trace data is recorded with the call stack information. The trace data from the recorded events and the trace data from the call stacks are processed to generate a tree structure in which the nodes indicate the call structure of the routine information from both the trace events and the call stacks.Type: GrantFiled: June 30, 1999Date of Patent: January 28, 2003Assignee: International Business Machines CorporationInventors: William Preston Alexander, III, Robert Francis Berry, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6338159Abstract: The present invention is a system, method, and computer readable medium for representing program event trace information in a way which is very compact and efficient, and yet supports a wide variety of queries regarding system performance. The tracing and reduction of the present invention may be dynamic, in which case information is obtained and added to the trace representation in real-time. Alternately, the tracing and reduction may be static, in which case a trace text file or binary file is obtained from a trace buffer, and the reduction takes place using the trace file as input. The trace information, whether obtained statically or dynamically, is represented as a tree of events. The present invention may be used to present many types of trace information in a compact manner which supports performance queries.Type: GrantFiled: June 30, 1999Date of Patent: January 8, 2002Assignee: International Business Machines CorporationInventors: William Preston Alexander, III, Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6332117Abstract: During the recording of events occurring within the operation of a data processing system, a user-selected metric of interest is recorded along with the trace data for each recorded event. The metric of interest is a monotonically increasing variable that provides a non-time relationship between the recorded events. This relationship may be time or non-time based.Type: GrantFiled: October 22, 1998Date of Patent: December 18, 2001Assignee: International Business Machines CorporationInventors: Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6263488Abstract: A method and system for enabling the monitoring of software executing on a computer system. The system inserts monitor instrumentation without recompiling the source code of the program. Encapsulation of the target routine does not disrupt the relative addressing of the target routine since an instruction is simply replaced. No instructions are added to the target routine. User specified entry and exit routines are used to collect selected performance and system state data. Instrumentation code is provided to link the target routines to the user specified entry and exit routines. The standard link interface allows the entry and exit routines to be written in high level languages.Type: GrantFiled: March 8, 1995Date of Patent: July 17, 2001Assignee: International Business Machines CorporationInventors: Michael Richard Fortin, Robert John Urquhart
-
Patent number: 6118940Abstract: Method and apparatus for creating benchmark programs for the analysis of java virtual machine implementations are implemented. Java applications and applets are compiled into an intermediate code referred to as byte code. The Java byte code forms the machine code for the Java Virtual Machine. The Java Virtual Machine running on top of a hardware platform translates the byte code into native machine code for execution on the hardware platform on which the Java Virtual Machine is running. The performance of a Java Virtual Machine is improved by the use of a so-called "just in time" (JIT) compiler that translates commonly occurring sequences of bytes codes in the native instruction sequences which are then stored for later execution. Critical to the performance of the JIT is the ability of the JIT to optimally compile for the most commonly occurring sequences of byte codes. The method and apparatus for creating benchmark programs provides a means for performance measurements with respect to such sequences.Type: GrantFiled: November 25, 1997Date of Patent: September 12, 2000Assignee: International Business Machines Corp.Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Hussain, Paul Jerome Kilpatrick, Robert John Urquhart
-
Patent number: 6026236Abstract: A method and system for enabling the monitoring of software executing on a computer system. The system inserts monitor instrumentation without recompiling the source code of the program. Encapsulation of the target routine does not disrupt the relative addressing of the target routine since an instruction is simply replaced. No instructions are added to the target routine. User specified entry and exit routines are used to collect selected performance and system state data. Instrumentation code is provided to link the target routines to the user specified entry and exit routines. The standard link interface allows the entry and exit routines to be written in high level languages.Type: GrantFiled: June 3, 1997Date of Patent: February 15, 2000Assignee: International Business Machines CorporationInventors: Michael Richard Fortin, Robert John Urquhart
-
Patent number: 6002872Abstract: A method for monitoring performance of a program. A periodically occurring event is detected and a stack associated with the program is identified in response to a detection of the periodically occurring event, which may be a timer interrupt. The stack is examined to identify each routine (and specific invocation point, or offset) that is currently executing in association with the program. Each routine (and offset) is represented as a node in a tree structure.Type: GrantFiled: March 31, 1998Date of Patent: December 14, 1999Assignee: International Machines CorporationInventors: William Preston Alexander, III, Robert Francis Berry, Donald L. Mulvey, Robert John Urquhart
-
Patent number: 5896538Abstract: The present invention is directed to a system and method for monitoring system performance by using a multi-phase approach. The first phase, referred to as the burst counting phase, utilizes a set of counters to identify calls and returns which are heavily used. In the second phase, referred to as the instrumentation phase, the performance characteristics of the "hot spots" are monitored through the use of hardware counters. In a symmetrical multi-processor embodiment, the performance profiler is active on all processors at the same time. Frequently executed code paths are identified in a manner that is minimally-intrusive to the system as a whole, and uses relatively little storage. The user may specify a threshold count, after which hardware monitoring begins, and the user may specify the type of hardware performance data collected. After both phases of the performance monitor are run, the data can be presented to the user in a variety of ways.Type: GrantFiled: November 26, 1996Date of Patent: April 20, 1999Assignee: International Business Machines CorporationInventors: Geoffrey Owen Blandy, Maher Afif Saba, Robert John Urquhart
-
Patent number: 5870095Abstract: A method is provided for initializing and updating a group of pixels contained on a display in blocks. A group of pixels is considered as a block and has a status word associated therewith. This status word maintains a running total of the maximum z value of any pixel contained within a group, or block of pixels. In this manner, once a block of pixels is rendered on to the display screen a comparison can be made between the current pixels being displayed and a group of pixels which are to be displayed. The minimum z value of the group of pixels to be displayed is compared with the maximum z value for the group of pixels currently being displayed. If the current maximum z value, as stored in the status word, is less than the minimum z value for the pixels to be displayed, then the group of pixels currently being displayed will all "win" when compared to the pixels in the group to be displayed.Type: GrantFiled: August 19, 1993Date of Patent: February 9, 1999Assignee: International Business Machines CorporationInventors: Virgil Anthony Albaugh, Robert John Urquhart
-
Patent number: 5710578Abstract: Two polygon fill algorithms are presented for filling polygons on a graphics display. The first polygon fill algorithm fills polygons that are strictly convex. The second polygon fill algorithm fills a larger class of polygons than the first polygon fill algorithm which includes polygons being concave in the x direction, and polygons having crossing lines. The first polygon fill algorithm tests the polygon for strict convexity by testing for a consistent turning direction, and by testing for once around in the y direction. The first polygon fill algorithm then stores the maximum and minimum value of the pel selected by the Bresenham algorithm for each scan line of the polygon. The fill line is drawn from the pel having the minimum value to the pel having the maximum value for each scan line of the polygon. The second polygon fill algorithm tests the polygon to ensure that it can be filled with one unique fill line for each scan line of the polygon.Type: GrantFiled: May 9, 1990Date of Patent: January 20, 1998Assignee: International Business Machines CorporationInventors: Gary Michael Beauregard, Larry Keith Loucks, Khoa Dang Nguyen, Robert John Urquhart