Patents by Inventor Robert Blainey

Robert Blainey 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: 20080028381
    Abstract: An embodiment of the present invention provides an optimizer for optimizing source code to generate optimized source code having instructions for instructing a central processing unit (CPU) to iteratively compute values for a primary recurrence element. A computer programmed loop for computing the primary recurrence element and subsequent recurrence elements is an example of a case involving iteratively computing the primary recurrence element. The CPU is operatively coupled to fast operating memory (FOM) and operatively coupled to slow operating memory (SOM). SOM stores the generated optimized source code. The optimized source code includes instructions for instructing said CPU to store a computed value of the primary recurrence element in a storage location of FOM. The instructions also includes instructions to consign the computed value of the primary recurrence element from the storage location to another storage location of the FOM.
    Type: Application
    Filed: October 10, 2007
    Publication date: January 31, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: ROCH ARCHAMBAULT, ROBERT BLAINEY, CHARLES HALL, YINGWEI ZHANG
  • Publication number: 20060048120
    Abstract: A mechanism for minimizing effective memory latency without unnecessary cost through fine-grained software-directed data prefetching using integrated high-level and low-level code analysis and optimizations is provided. The mechanism identifies and classifies streams, identifies data that is most likely to incur a cache miss, exploits effective hardware prefetching to determine the proper number of streams to be prefetched, exploits effective data prefetching on different types of streams in order to eliminate redundant prefetching and avoid cache pollution, and uses high-level transformations with integrated lower level cost analysis in the instruction scheduler to schedule prefetch instructions effectively.
    Type: Application
    Filed: August 26, 2004
    Publication date: March 2, 2006
    Applicant: International Business Machines Corporation
    Inventors: Rock Archambault, Robert Blainey, Yaoqing Gao, Allan Martin, James McInnes, Francis O'Connell
  • Publication number: 20060048121
    Abstract: A generic language interface is provided to apply a number of loop optimization transformations. The language interface includes two new directives. The present invention detects the directives in a computer program, and generates code that has been applied at least one loop transformation based on the directives.
    Type: Application
    Filed: August 26, 2004
    Publication date: March 2, 2006
    Applicant: International Business Machines Corporation
    Inventors: Robert Blainey, Arie Tal
  • Publication number: 20060047734
    Abstract: Method, system and computer program product for converting integers to floating point values in a data processing system. The method utilizes data flow analysis and control flow analysis to recognize that a particular integer that is to be converted contains only a limited range of values. Knowledge of this limited range is used to establish a table of floating point values indexed by the integer value. By using the table of floating point values, conversion of an integer to a floating point value can be performed faster and with reduced memory traffic.
    Type: Application
    Filed: August 30, 2004
    Publication date: March 2, 2006
    Applicant: International Business Machines Corporation
    Inventors: Robert Blainey, Shimin Cui, Mark Mendell, Steven White
  • Publication number: 20050268039
    Abstract: A method and system for reducing or avoiding store misses with a data cache block zero (DCBZ) instruction in cooperation with the underlying hardware load stream prefetching support for helping to increase effective aggregate bandwith. The method identifies and classifies unique streams in a loop based on dependency and reuse analysis, and performs loop transformations, such as node splitting, loop distribution or stream unrolling to get the proper number of streams. Static prediction and run-time profile information are used to guide loop and stream selection. Compile-time loop cost analysis and run-time check code and versioning are used to determine the number of cache lines ahead of each reference for data cache line zeroing and to tolerate required data alignment relative to data cache lines.
    Type: Application
    Filed: May 25, 2004
    Publication date: December 1, 2005
    Applicant: International Business Machines Corporation
    Inventors: Roch Archambault, Robert Blainey, Yaoging Gao, Randall Heisch, Steven White
  • Publication number: 20050246700
    Abstract: A compiling program with cache utilization optimizations employs an inter-procedural global analysis of the data access patterns of compile units to be processed. The global analysis determines sufficient information to allow intelligent application of optimization techniques to be employed to enhance the operation and utilization of the available cache systems on target hardware.
    Type: Application
    Filed: April 30, 2004
    Publication date: November 3, 2005
    Applicant: International Business Machines Corporation
    Inventors: Roch Archambault, Robert Blainey, Yaoqing Gao
  • Publication number: 20050138613
    Abstract: A method and system of modifying instructions forming a loop is provided. A method of modifying instructions forming a loop includes modifying instructions forming a loop including: determining static and dynamic characteristics for the instructions; selecting a modification factor for the instructions based on a number of separate equivalent sections forming a cache in a processor which is processing the instructions; and modifying the instructions to interleave the instructions in the loop according to the modification factor and the static and dynamic characteristics when the instructions satisfy a modification criteria based on the static and dynamic characteristics.
    Type: Application
    Filed: May 27, 2004
    Publication date: June 23, 2005
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Roch Archambault, Robert Blainey, Yaoqing Gao, John McCalpin, Francis O'Connell, Pascal Vezolle, Steven White
  • Publication number: 20050138029
    Abstract: There is disclosed a method and system for determining the bounds of generated software loops, where the relationships between split points and loop bounds are not known, or only partly known, at compile time. A “sub-range tree” is built with a root node representing the original software loop. Each sub-node represents a sub-range of the original software loop split by one or more split points. Each edge between nodes of the sub-range tree is marked with either a “then” (T) or “else” (E) marker, according to a predetermined scheme. Once the sub-range tree is built, a “path-from-root” is analyzed for each leaf node of the sub-range tree, and “dead” inductive control flow branches are identified and folded. The growth of software loop code based on the sub-range tree may be restricted by a predetermined code growth limit.
    Type: Application
    Filed: June 9, 2004
    Publication date: June 23, 2005
    Applicant: International Business Machines Corporation
    Inventors: Robert Blainey, Arie Tal
  • Publication number: 20050010729
    Abstract: A system and method for lock caching for compound atomic operations (i.e. a read or write operation to more than one 4-byte word) on shared memory is provided. In a computer system including a memory shared among a plurality of processing entities, for example, multiple threads, a method of performing compound atomic operations comprises providing a pool of locks for synchronizing access to the memory; assigning the locks among the plurality of entities to minimize lock contention; and performing the compound atomic operations using the assigned locks. Each lock may be assigned in accordance with an address of the shared memory from the processing entity's compound atomic operations. Assigning locks may be performed in a manner to minimize concurrent atomic updates to the same or overlapping portions of the shared memory.
    Type: Application
    Filed: June 8, 2004
    Publication date: January 13, 2005
    Inventors: Raul Silvera, Robert Blainey