Patents by Inventor Robert Urquhart
Robert 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).
-
Patent number: 6981630Abstract: In a powder driven fastening tool, a channel is included for feeding a strip of explosive powder cartridges to a firing mechanism. A trigger is included for actuating the firing mechanism, wherein the trigger is movable between a first position and a second position. An advancing lever is pivotally coupled to the tool, the advancing lever having a strip engagement portion for indexing the strip which extends into the channel. An advance link is cammingly engaged with the advancing lever and is operationally associated with the trigger so that the strip engagement portion is in a first position in the channel when the trigger is in the first position and so the strip engagement portion is in a second position when the trigger is in the second position.Type: GrantFiled: August 29, 2003Date of Patent: January 3, 2006Assignee: Illinois Tool Works Inc.Inventors: Michael S. Popovich, Edward D. Yates, Robert Urquhart Connell, David John McCullough
-
Publication number: 20050289307Abstract: 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: ApplicationFiled: June 24, 2004Publication date: December 29, 2005Applicant: International Business Machines CorporationInventors: Phani Achanta, Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050257092Abstract: 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: ApplicationFiled: April 29, 2004Publication date: November 17, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Frank Levine, Robert Urquhart
-
Publication number: 20050251707Abstract: 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: ApplicationFiled: April 29, 2004Publication date: November 10, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050251706Abstract: 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: ApplicationFiled: April 29, 2004Publication date: November 10, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050246696Abstract: 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 29, 2004Publication date: November 3, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210199Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210198Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210451Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210439Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210450Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Inventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210339Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050210454Abstract: 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: ApplicationFiled: March 18, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
-
Publication number: 20050210452Abstract: 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: ApplicationFiled: March 22, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050183070Abstract: A method and apparatus for averaging out variations from run to run of a computer program are provided. With the apparatus and method, call trees are generated for two or more executions of a build of a computer program. The apparatus and method perform a “tree-addition” operation in which the two or more call trees generated during runs of the computer program are added to one another to thereby accumulate statistics for each call in the call trees. These statistics may then be divided by the number of runs whose tree data structures are being accumulated. In this way, an average of the tree data structures is generated. In addition, any portions of the tree data structure that are due to asynchronous events are averaged out so that their relative affect in the resulting tree data structure is minimized.Type: ApplicationFiled: February 12, 2004Publication date: August 18, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050183074Abstract: A method and apparatus for identifying differences in runs of a computer program that are due to changes in the code of the computer program. With the apparatus and method, call trees are generated for two or more builds of a computer program. The apparatus and method perform a “tree-subtract” operation in which the two or more call trees generated during runs of two or more different builds of a computer program are subtracted from one another to identify build to build differences in the execution of the computer program. From the resulting tree, portions of the runs of the different builds of the computer program where the resource utilization of the computer program has not changed are easily identifiable. Moreover, portions of the runs of the different builds of the computer program where there are improvements or regressions in resource utilization of the computer program may be easily identifiable.Type: ApplicationFiled: February 12, 2004Publication date: August 18, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Robert Dimpsey, Kean Kuiper, Frank Levine, Robert Urquhart
-
Publication number: 20050183067Abstract: A method and apparatus for automatically performing regression processing on trace data are provided. With the apparatus and method, call tree data structures are generated for two or more executions of two or more builds of a computer program. The apparatus and method perform a “tree-minimization” operation on each set of call tree data structures for each of the builds to generate minimized call tree data structures for each build of the computer program. The minimized call tree data structures are then subtracted from one another to generate a subtracted minimized call tree data structure. From this subtracted minimized call tree data structure, the portions of the computer program that are different from build to build and which appreciably and consistently affect the difference in execution of the computer program from build to build may be identified.Type: ApplicationFiled: February 12, 2004Publication date: August 18, 2005Applicant: International Business Machines CorporationInventors: Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050183075Abstract: A method and apparatus for identifying a minimum call tree data structure from a plurality of call tree data structures are provided. With the apparatus and method, call tree data structures are generated for two or more executions of a build of a computer program. The apparatus and method perform a “tree-minimization” operation in which the two or more call trees generated during runs of the computer program are walked and only those nodes that are present in each of the tree data structures are maintained in a minimized tree data structure. In addition, the minimum values for these common nodes are maintained in the minimized tree data structure. In this way, asynchronous events are removed from the minimum tree data structure and analysis may focus on those areas of the computer program that are consistent between runs of the computer program.Type: ApplicationFiled: February 12, 2004Publication date: August 18, 2005Applicant: International Business Machines CorporationInventors: William Alexander, Robert Dimpsey, Frank Levine, Robert Urquhart
-
Publication number: 20050154839Abstract: A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, the performance indicators may be utilized to obtain information regarding the nature of the cache hits and reloads of cache lines within the instruction or data cache. These embodiments may be used to determine whether processors of a multiprocessor system, such as a symmetric multiprocessor (SMP) system, are truly sharing a cache line or if there is false sharing of a cache line. This determination may then be used as a means for determining how to better store the instructions/data of the cache line to prevent false sharing of the cache line.Type: ApplicationFiled: January 14, 2004Publication date: July 14, 2005Applicant: International Business Machines CorporationInventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart
-
Publication number: 20050155025Abstract: A method, apparatus, and computer instructions for local program reorganization using branch count per instruction hardware. In a preferred embodiment, a hardware counter is used in the present invention to count the number of times a branch is taken when branch instructions are executed. Branch count statistics generated from the hardware counters are available to a program in order to analyze whether code reorganization is necessary. If reorganization is necessary, the program autonomically reorganizes instructions locally at run time to allow more instructions to be executed prior to taking a branch, so that the number of branches taken is minimized without modifying underlying program code.Type: ApplicationFiled: January 14, 2004Publication date: July 14, 2005Applicant: International Business Machines CorporationInventors: Jimmie DeWitt, Frank Levine, Christopher Richardson, Robert Urquhart