Patents by Inventor Frank Levine

Frank Levine 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: 20060230391
    Abstract: A system and method for collecting a plurality of metrics during a single run of a computer program. The mechanism of the present invention initializes a plurality of counters to count events associated with metrics of interest. The mechanism of the present invention then counts the occurrence of events associated with metrics of interest during a single execution of a computer program. When a branch has been taken, a trace record is generated for the branch taken, wherein the generated trace record contains a count of events associated with the metrics of interest for the branch taken.
    Type: Application
    Filed: April 12, 2005
    Publication date: October 12, 2006
    Applicant: International Business Machines Corporation
    Inventors: William Alexander, Scott Jones, Frank Levine, Robert Urquhart
  • Publication number: 20060229849
    Abstract: A method, apparatus and computer instructions for application based tracing and for normalization of processor clocks in a symmetric multiprocessor environment. By deliberately establishing a large skew among processor clocks, it is possible to perform application based tracing by directly using the processors. In addition, the identity, time stamp, and drift information of each processor may be used to create a time library. The time library is used to adjust a measured time to execute a program or software routine. The adjusted time is a normalized time that is statistically more accurate than the measured time alone. The adjusted time is then reported as the time to execute the program or software routine.
    Type: Application
    Filed: April 12, 2005
    Publication date: October 12, 2006
    Applicant: International Business Machines Corporation
    Inventors: Frank Levine, David Siegwart
  • Publication number: 20060212761
    Abstract: An improved method, apparatus, and computer instructions for compressing trace data. An instruction stream is identified, and in response to identifying the instruction stream, the instruction addresses in the instruction stream are replaced with a stream identifier to form compressed trace data. Data addresses may be related to instructions in the instruction stream to generate a data trace component in the compressed trace data.
    Type: Application
    Filed: March 17, 2005
    Publication date: September 21, 2006
    Inventors: Frank Levine, Aleksandar Milenkovic, Milena Milenkovic
  • Publication number: 20060212242
    Abstract: An improved method, apparatus, and computer instructions for generating trace data. In response to detecting a trace event, a determination is made as to whether identifiers for the trace event match recorded identifiers for a record in a set of previously recorded trace events. Location information for the record is placed in the trace data if a match between identifiers for the trace event and recorded identifiers for the record in the set of previously recorded trace events.
    Type: Application
    Filed: March 17, 2005
    Publication date: September 21, 2006
    Inventors: Frank Levine, Milena Milenkovic, Robert Urquhart
  • Publication number: 20060212244
    Abstract: An improved method, apparatus, and computer instructions for generating trace data. In response to detecting a new trace event, a determination is made as to whether the new trace event occurred at an expected period of time with respect to a prior trace event. A time stamp in the trace data is placed in response to a determination that the new trace event did not occur at the expected period of time, wherein time stamps occurring at the expected period if time are eliminated from the trace data and wherein compression of the trace data occurs.
    Type: Application
    Filed: March 17, 2005
    Publication date: September 21, 2006
    Inventors: Frank Levine, Milena Milenkovic, Robert Urquhart
  • Publication number: 20060212243
    Abstract: An improved method, apparatus, and computer instructions for generating trace data. In response to detecting a trace event a determination is made as to whether identifiers for the trace event match recorded identifiers for a record in a set of previously recorded trace events. A count in the record is increased if a match is present between identifiers for the trace event and recorded identifiers for a record in the set of previously recorded trace events.
    Type: Application
    Filed: March 17, 2005
    Publication date: September 21, 2006
    Inventors: Frank Levine, Milena Milenkovic, Robert Urquhart
  • Publication number: 20060020946
    Abstract: A method, apparatus, and computer instructions in a processor for performing arithmetic operations. A data type associated with a particular memory location is used to determine if an operation about to be performed on the data in that location is legal. If the operation requires the data to have a required data type, a determination is made as to whether the operation is a legal operation based on the identified data type and the required data type. If the operation is not legal on the identified type, a determination is made as to whether data can be cast to change the identified data type to the required data type. The data is cast to the required data type if the data can be cast to form modified data, and the arithmetic operation is performed on the modified data. If the data cannot be cast to the Required type, an exception or interrupt is generated.
    Type: Application
    Filed: April 29, 2004
    Publication date: January 26, 2006
    Applicant: International Business Machines Corporation
    Inventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050289307
    Abstract: A method and system for determining the memory utilization of a heap are provided. With the method and system, object allocations and optionally, possible memory freeing events are used to initiate a mark-and-count operation. The mark-and-count operation marks the live objects and maintains a running count of their memory bytes allocated to the live objects, referred to as a live count. The execution of the mark-and-count operation may be dependent upon various criteria including thresholds, functions of the live count, peak live counts, number of memory bytes allocated since a previous mark-and-count operation was performed, and the like. In addition to the live count, a total number of bytes allocated to objects may be maintained in order to obtain information regarding the heap memory utilization.
    Type: Application
    Filed: June 24, 2004
    Publication date: December 29, 2005
    Applicant: International Business Machines Corporation
    Inventors: Phani Achanta, Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050257092
    Abstract: A method, apparatus, and computer instructions in a processor for selectively performing operations on data. An operation to be performed on data is identified to form an identified operation. A determination is made as to whether metadata identifying a state of the data is associated with the data. A determination is made as to whether the identified operation can be performed on the data based on the state of the data, in response to the metadata being associated with the data. The operation is performed on the data if the state of the data allows for the operation to be performed. The processor selectively performs the operations based on the state of the data.
    Type: Application
    Filed: April 29, 2004
    Publication date: November 17, 2005
    Applicant: International Business Machines Corporation
    Inventors: William Alexander, Frank Levine, Robert Urquhart
  • Publication number: 20050251707
    Abstract: A method, apparatus, and computer instructions in a processor for checking assertions. A determination by the processor is made as to whether metadata for an assertion is associated with the memory location, in response to detecting a change in data in a memory location. The data to the assertion is compared by the processor, in response to the metadata being associated with the memory location. An error is generated by the processor if the assertion is invalid, with respect to the data. The processor checks the assertions for validity.
    Type: Application
    Filed: April 29, 2004
    Publication date: November 10, 2005
    Applicant: International Business Machines Corporation
    Inventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050251706
    Abstract: A method, apparatus, and computer instructions in a processor for checking operations on data. A data type associated with a particular memory location is used to determine if an operation about to be performed on the data in that location is legal. If the operation requires the data to have a required data type, a determination is made as to whether the operation is a legal operation based on the identified data type and the required data type. The operation is performed if the operation is legal for the data. If the operation is not legal for the identified type, an error condition is indicated. In this manner, the processor provides checks on the operations to be performed on the data to identify legal operations.
    Type: Application
    Filed: April 29, 2004
    Publication date: November 10, 2005
    Applicant: International Business Machines Corporation
    Inventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050246696
    Abstract: A method, apparatus, and computer instructions in a processor for associating a data type with a memory location. The type is associated with a location by means of metadata that is generated and manipulated by hardware instructions that are typically generated by a compiler as it generates the other instructions that comprise the machine code version of a program. A determination is made as to whether a data value about to be stored is of the required data type for that location. The hardware indicates an error condition if the types do not match.
    Type: Application
    Filed: April 29, 2004
    Publication date: November 3, 2005
    Applicant: International Business Machines Corporation
    Inventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210199
    Abstract: A method, apparatus, and computer instructions for providing hardware assistance to prefetch data during execution of code by a process or in the data processing system. In response to loading an instruction in the code into a cache, a determination is made by a processor unit as to whether a prefetch indicator is associated with the instruction. In response to the prefetch indicator being associated with the instruction, a pointer to a data structure identified by the prefetch indicator is selectively prefetched into the cache in the processor.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210439
    Abstract: A method, apparatus, and computer instructions for presenting coverage data relating to data access occurring during execution of code. The coverage data containing data access indicators associated with memory locations is obtained. The data access indicators that have been set by a processor in the data processing system in response to access of the memory locations during execution of the code by the processor are identified to form set data access indicators. Each set instruction access indicator is associated with a portion of the memory locations allocated for the code. A presentation for coverage data is generated, wherein the set data access indicators are identified in the presentation.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210451
    Abstract: A method, apparatus, and computer instructions for generating coverage data for accesses to dynamically allocated data during execution of code in a data processing system. In response to a request to dynamically allocate a memory area for dynamically allocated data, the memory area is dynamically allocated during execution of the code. The memory area is associated with a data access indicator in response to dynamically allocating this memory area. A determination is made as to whether an access to a memory location associated with the data access indicator has occurred, in response to executing an instruction in the code at a processor in the data processing system. If the data access indicator is associated with the memory area, a state of the data access indicator by the processor is changed when the instruction is executed. The coverage data for the dynamically allocated data is generated during execution of the code by the processor.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210198
    Abstract: A method, apparatus, and computer instructions for providing hardware assistance to prefetch data during execution of code by a process or in the data processing system. In response to loading of an instruction in the code into a cache, a determination is made, by the processor unit, as to whether metadata for a prefetch is present for the instruction. In response to metadata being present for the instruction, selectively prefetching data, from within a data structure using the metadata, into the cache in a processor.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210339
    Abstract: A method, apparatus, and computer instructions for presenting coverage data for code. The coverage data containing instruction access indicators associated with the code is obtained. Particular instruction access indicators that have been set by a processor in the data processing system in response to execution of the code by the processor are identified to form set instruction access indicators. Each set instruction access indicator is associated with a portion of the code. A presentation for the coverage data is generated. The set instruction access indicators are identified in the presentation. This presentation may be, for example, a graphical presentation.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210452
    Abstract: A method, apparatus, and computer instructions for generating coverage data during execution of code in the data processing system. During execution of the code, a determination is made as to whether an access indicator is associated with an instruction in response to executing the instruction in the code by a processor in the data processing system. If the access indicator is associated with the instruction, a state of the access indicator is changed, by the processor, when the instruction is executed. In this manner, coverage data for executed instructions is generated by the processor during execution of the code.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
  • Publication number: 20050210454
    Abstract: A method, apparatus, and computer instructions for determining computer flows autonomically using hardware assisted thread stack and cataloged symbolic data. When a new thread is spawned during execution of a computer program, new thread work area is allocated by the operating system in memory for storage of call stack information for the new thread. Hardware registers are set with values corresponding to the new thread work area. Upon context switch, values of the registers are saved in a context save area for future restoration. When call stack data is post-processed, the operating system or a device driver copies call stack data from the thread work areas to a consolidated buffer and each thread is mapped to a process. Symbolic data may be obtained based on the process identifier and address of the method/routine that was called/returned in the thread. Corresponding program flow is determined using retrieved symbolic data and call stack data.
    Type: Application
    Filed: March 18, 2004
    Publication date: September 22, 2005
    Applicant: International Business Machines Corporation
    Inventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
  • Publication number: 20050210450
    Abstract: A method, apparatus, and computer instructions for generating coverage data for accesses to data during execution of code in the data processing system. During execution of the code, a determination is made as to whether an access to a memory location associated with a data access indicator has occurred in response to executing an instruction in the code at a processor in the data processing system. If the data access indicator is associated with the memory location, a state of the access indicator is changed by the processor. The coverage data is generated during execution of the code by the processor.
    Type: Application
    Filed: March 22, 2004
    Publication date: September 22, 2005
    Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart