Patents by Inventor Robert Tod Dimpsey
Robert Tod Dimpsey 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: 20080229156Abstract: 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: ApplicationFiled: April 24, 2008Publication date: September 18, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: William Preston Alexander, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7421684Abstract: 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: GrantFiled: March 22, 2004Date of Patent: September 2, 2008Assignee: International Business Machines CorporationInventors: Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7386690Abstract: 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: GrantFiled: April 29, 2004Date of Patent: June 10, 2008Assignee: International Business Machines CorporationInventors: William Preston Alexander, III, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Publication number: 20080133867Abstract: A method, system, and program for facilitating non-contiguous allocation of a chunked object within a Java heap without changing the manner in which a Java Virtual Manager allocates objects within the heap are provided. According to one embodiment, a chunking controller within a broker layer detects a large object, where a large object is one that the size of the allocation of the large object within a memory heap exceeds a maximum contiguous free space within the Java heap. The broker layer operates atop the Java Virtual Manager to facilitate communication and business processes between heterogeneous systems. The chunking controller describes the large object by an underlying array of the large object divided into multiple pieces of a size not exceeding the maximum contiguous free space.Type: ApplicationFiled: February 14, 2008Publication date: June 5, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: PHANI GOPAL V. ACHANTA, ROBERT TOD DIMPSEY, HARSHAL HEMENDRA SHAH
-
Patent number: 7360053Abstract: A method, system, and program for facilitating non-contiguous allocation of a chunked object within a Java heap without changing the manner in which a Java Virtual Manager allocates objects within the heap are provided. According to one embodiment, a chunking controller within a broker layer detects a large object, where a large object is one that the size of the allocation of the large object within a memory heap exceeds a maximum contiguous free space within the Java heap. The broker layer operates atop the Java Virtual Manager to facilitate communication and business processes between heterogeneous systems. The chunking controller describes the large object by an underlying array of the large object divided into multiple pieces of a size not exceeding the maximum contiguous free space.Type: GrantFiled: September 23, 2004Date of Patent: April 15, 2008Assignee: International Business Machines CorporationInventors: Phani Gopal V. Achanta, Robert Tod Dimpsey, Harshal Hemendra Shah
-
Patent number: 7328374Abstract: 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: GrantFiled: April 29, 2004Date of Patent: February 5, 2008Assignee: International Business Machines CorporationInventors: William Preston Alexander, III, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7299319Abstract: 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: GrantFiled: March 22, 2004Date of Patent: November 20, 2007Assignee: International Business Machines CorporationInventors: Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7296130Abstract: 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: GrantFiled: March 22, 2004Date of Patent: November 13, 2007Assignee: International Business Machines CorporationInventors: Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7269718Abstract: 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: GrantFiled: April 29, 2004Date of Patent: September 11, 2007Assignee: International Business Machines CorporationInventors: William Preston Alexander, III, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7162605Abstract: 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 peak live count may be obtained and updated as new peak live counts are identified. When the peak live count is updated, additional information may be obtained via a heap dump, arcflow tree, or the like.Type: GrantFiled: June 24, 2004Date of Patent: January 9, 2007Assignee: International Business Machines CorporationInventors: Phani Gopal Achanta, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7114150Abstract: An apparatus and method are provided for the dynamic instrumentation of code to minimize system perturbation during tracing of the execution of the code. With the apparatus and method, “hot spots” in the execution of the code are dynamically determined during tracing of the execution of the code. These “hot spots” are dynamically instrumented, i.e. an event hook is inserted, to cause control to be passed to a handler that determines a caller of the “hot spot” method. The method that called the “hot spot” method, or “caller” method, is identified from a call stack and is dynamically instrumented for an appropriate metric so that the next time the calling method is executed, the dynamically inserted hooks are executed. The execution of the hooks in the caller method is continued for a predetermined period, e.g., number of invocations, to get an understanding of the caller method's characteristics.Type: GrantFiled: February 13, 2003Date of Patent: September 26, 2006Assignee: International Business Machines CorporationInventors: Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7010555Abstract: A system and method for incrementally compacting a computer system heap is presented. A heap, such as a garbage-collected heap in a Java environment, is divided into logical regions. When the heap is becoming fragmented, an incremental compaction cycle is commenced. During a first time period, the first region of the heap is compacted, with subsequent regions being compacted during subsequent time periods. A time period commences when a garbage collection event occurs. In a multiprocessor environment the regions can be divided into a number of sections which are each compacted using a different processor. One or more break tables are constructed indicating how far contiguous groups of moveable objects should be moved to better group objects and eliminate interspersed free spaces. References throughout the heap that point to objects within the compacted region are then adjusted so that the references point to the new object locations.Type: GrantFiled: October 17, 2002Date of Patent: March 7, 2006Assignee: International Business Machines CorporationInventors: Geoffrey Owen Blandy, Robert Tod Dimpsey, Kean G. Kuiper, Matthew Francis Peters
-
Publication number: 20050289315Abstract: 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 peak live count may be obtained and updated as new peak live counts are identified. When the peak live count is updated, additional information may be obtained via a heap dump, arcflow tree, or the like.Type: ApplicationFiled: June 24, 2004Publication date: December 29, 2005Applicant: International Business Machines CorporationInventors: Phani Gopal Achanta, Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 6792601Abstract: An object-based multi-threaded computing system has a cyclic garbage collection strategy and includes an object locking system having (i) a first mode in which access by a single thread without contention to an object is controlled by a monitor internal to said object, and (ii) a second mode in which access by multiple threads with contention to said object is controlled by a monitor external to said object. For any given object a transition from the first mode to the second mode is termed inflation, and a transition from the second mode to the first mode is termed deflation. Responsive to the start of a period of contention for an object in said first mode, the object is inflated to the second mode, and an inflation rate counter is incremented. After the period of contention has concluded the value of the inflation rate counter is compared against a predetermined value in order to determine whether or not to deflate the object. The inflation rate counter is reset at every garbage collection cycle.Type: GrantFiled: May 18, 2000Date of Patent: September 14, 2004Assignee: International Business Machines CorporationInventors: Robert Tod Dimpsey, Benjamin Joseph Hoflich, Brian David Peacock
-
Publication number: 20040163077Abstract: An apparatus and method are provided for the dynamic instrumentation of code to minimize system perturbation during tracing of the execution of the code. With the apparatus and method, “hot spots” in the execution of the code are dynamically determined during tracing of the execution of the code. These “hot spots” are dynamically instrumented, i.e. an event hook is inserted, to cause control to be passed to a handler that determines a caller of the “hot spot” method. The method that called the “hot spot” method, or “caller” method, is identified from a call stack and is dynamically instrumented for an appropriate metric so that the next time the calling method is executed, the dynamically inserted hooks are executed. The execution of the hooks in the caller method is continued for a predetermined period, e.g., number of invocations, to get an understanding of the caller method's characteristics.Type: ApplicationFiled: February 13, 2003Publication date: August 19, 2004Applicant: International Business Machines CorporationInventors: Robert Tod Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Publication number: 20040078381Abstract: A system and method for incrementally compacting a computer system heap is presented. A heap, such as a garbage-collected heap in a Java environment, is divided into logical regions. When the heap is becoming fragmented, an incremental compaction cycle is commenced. During a first time period, the first region of the heap is compacted, with subsequent regions being compacted during subsequent time periods. A time period commences when a garbage collection event occurs. In a multiprocessor environment the regions can be divided into a number of sections which are each compacted using a different processor. One or more break tables are constructed indicating how far contiguous groups of moveable objects should be moved to better group objects and eliminate interspersed free spaces. References throughout the heap that point to objects within the compacted region are then adjusted so that the references point to the new object locations.Type: ApplicationFiled: October 17, 2002Publication date: April 22, 2004Applicant: International Business Machines CorporationInventors: Geoffrey Owen Blandy, Robert Tod Dimpsey, Kean G. Kuiper, Matthew Francis Peters
-
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
-
Patent number: 6421827Abstract: The present invention is a method, system, and computer readable medium for detecting the loading pattern of application and library files, and then reordering the files so that future loads are performed more efficiently. The present invention detects the loading pattern of an application file and library files, and then reorders the pages within the application and library executable files so that future loads are sequential. After being reordered, the application and library files are relinked in order to resolve references. A sequential load access pattern is beneficial, as it takes full advantage of read-ahead performed by the file system. The present invention allows pages of an application or library executable file to be stored in the order in which they will most likely be loaded. Thus, when the file system performs read-ahead, and brings additional pages into memory, these additional pages are the next pages needed and are loaded.Type: GrantFiled: December 17, 1997Date of Patent: July 16, 2002Assignee: International Business Machines CorporationInventors: Robert Tod Dimpsey, Michael Richard Fortin, Maher Saba