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: 20040123084
    Abstract: 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: Application
    Filed: December 19, 2002
    Publication date: June 24, 2004
    Applicant: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6662359
    Abstract: 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: Grant
    Filed: July 20, 2000
    Date of Patent: December 9, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, John Day Howard, Riaz Y. Hussain, Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6658654
    Abstract: 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: Grant
    Filed: July 6, 2000
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Robert Tod Dimpsey, Frank Eliot Levine, Enio Manuel Pineda, Robert John Urquhart
  • Publication number: 20030135789
    Abstract: 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: Application
    Filed: January 14, 2002
    Publication date: July 17, 2003
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Jimmie Earl DeWitt, Riaz Y. Hussain, Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6553564
    Abstract: 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: Grant
    Filed: June 30, 1999
    Date of Patent: April 22, 2003
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Frank Eliot Levine, Chester Charles John, Jr., Robert John Urquhart
  • Patent number: 6513155
    Abstract: 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: Grant
    Filed: June 30, 1999
    Date of Patent: January 28, 2003
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6338159
    Abstract: 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: Grant
    Filed: June 30, 1999
    Date of Patent: January 8, 2002
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6332117
    Abstract: 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: Grant
    Filed: October 22, 1998
    Date of Patent: December 18, 2001
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6263488
    Abstract: 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: Grant
    Filed: March 8, 1995
    Date of Patent: July 17, 2001
    Assignee: International Business Machines Corporation
    Inventors: Michael Richard Fortin, Robert John Urquhart
  • Patent number: 6118940
    Abstract: 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: Grant
    Filed: November 25, 1997
    Date of Patent: September 12, 2000
    Assignee: International Business Machines Corp.
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Hussain, Paul Jerome Kilpatrick, Robert John Urquhart
  • Patent number: 6026236
    Abstract: 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: Grant
    Filed: June 3, 1997
    Date of Patent: February 15, 2000
    Assignee: International Business Machines Corporation
    Inventors: Michael Richard Fortin, Robert John Urquhart
  • Patent number: 6002872
    Abstract: 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: Grant
    Filed: March 31, 1998
    Date of Patent: December 14, 1999
    Assignee: International Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Donald L. Mulvey, Robert John Urquhart
  • Patent number: 5896538
    Abstract: 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: Grant
    Filed: November 26, 1996
    Date of Patent: April 20, 1999
    Assignee: International Business Machines Corporation
    Inventors: Geoffrey Owen Blandy, Maher Afif Saba, Robert John Urquhart
  • Patent number: 5870095
    Abstract: 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: Grant
    Filed: August 19, 1993
    Date of Patent: February 9, 1999
    Assignee: International Business Machines Corporation
    Inventors: Virgil Anthony Albaugh, Robert John Urquhart
  • Patent number: 5710578
    Abstract: 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: Grant
    Filed: May 9, 1990
    Date of Patent: January 20, 1998
    Assignee: International Business Machines Corporation
    Inventors: Gary Michael Beauregard, Larry Keith Loucks, Khoa Dang Nguyen, Robert John Urquhart