Patents by Inventor Allan Russell Martin

Allan Russell Martin 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: 8387035
    Abstract: A scheduling algorithm is provided for selecting the placement of instructions with internal slack into a schedule of instructions within a loop. The algorithm achieves this by pinning nodes with internal slack to corresponding nodes on the critical path of the code that have similar properties in terms of the data dependency graph, such as earliest time and latest time. The effect is that nodes with internal slack are more often optimally placed in the schedule, reducing the need for rotating registers or register copy instructions. The benefit of the present invention can primarily be seen when performing instruction scheduling or software pipelining on loop code, but can also apply to other forms of instruction scheduling when greater control of placement of nodes with internal slack is desired.
    Type: Grant
    Filed: January 13, 2009
    Date of Patent: February 26, 2013
    Assignee: International Business Machines Corporation
    Inventor: Allan Russell Martin
  • Patent number: 8266610
    Abstract: A method, apparatus, and computer instructions for scheduling instructions for execution. Identify a series of instructions in a loop, wherein the series of instructions has a cyclic data dependency. Determine whether the series of instructions is a uniform series of instructions. Schedule execution of the uniform series of instructions within the loop to optimize execution of the loop in response to the identified series of instructions being the uniform series of instructions.
    Type: Grant
    Filed: September 19, 2008
    Date of Patent: September 11, 2012
    Assignee: International Business Machines Corporation
    Inventor: Allan Russell Martin
  • Patent number: 7962907
    Abstract: An improved scheduling technique for software pipelining is disclosed which is designed to find schedules requiring fewer processor clock cycles and reduce register pressure hot spots when scheduling multiple groups of instructions (e.g. as represented by multiple sub-graphs of a DDG) which are independent, and substantially identical. The improvement in instruction scheduling and reduction of hot spots is achieved by evenly distributing such groups of instructions around the schedule for a given loop.
    Type: Grant
    Filed: August 17, 2007
    Date of Patent: June 14, 2011
    Assignee: International Business Machines Corporation
    Inventors: Allan Russell Martin, James Lawrence McInnes
  • Publication number: 20100095271
    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: December 22, 2009
    Publication date: April 15, 2010
    Applicant: International Business Machines Corporation
    Inventors: Roch Georges Archambault, Robert James Blainey, Yaoqing Gao, Allan Russell Martin, James Lawrence McInnes, Francis Patrick O'Connell
  • Patent number: 7669194
    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: Grant
    Filed: August 26, 2004
    Date of Patent: February 23, 2010
    Assignee: International Business Machines Corporation
    Inventors: Roch Georges Archambault, Robert James Blainey, Yaoqing Gao, Allan Russell Martin, James Lawrence McInnes, Francis Patrick O'Connell
  • Patent number: 7546592
    Abstract: A method, computer program product, and a data processing system for scheduling instructions in a data processing system are provided. Dependencies among a plurality of nodes are analyzed to determine if any of the plurality of nodes uses a constrained resource. Each of the plurality of nodes represents an instruction in a set of instructions. A subset of the plurality of nodes is designated as resource-constrained nodes. An attempt is made to generate a schedule with the subset of the plurality of nodes scheduled with priority with respect to any of the plurality of nodes not included in the subset.
    Type: Grant
    Filed: July 21, 2005
    Date of Patent: June 9, 2009
    Assignee: International Business Machines Corporation
    Inventor: Allan Russell Martin
  • Publication number: 20090113184
    Abstract: A scheduling algorithm is provided for selecting the placement of instructions with internal slack into a schedule of instructions within a loop. The algorithm achieves this by pinning nodes with internal slack to corresponding nodes on the critical path of the code that have similar properties in terms of the data dependency graph, such as earliest time and latest time. The effect is that nodes with internal slack are more often optimally placed in the schedule, reducing the need for rotating registers or register copy instructions. The benefit of the present invention can primarily be seen when performing instruction scheduling or software pipelining on loop code, but can also apply to other forms of instruction scheduling when greater control of placement of nodes with internal slack is desired.
    Type: Application
    Filed: January 13, 2009
    Publication date: April 30, 2009
    Applicant: International Business Machines Corporation
    Inventor: Allan Russell Martin
  • Patent number: 7506331
    Abstract: A method, apparatus, and computer instructions for processing instructions. A data dependency graph is built. The data dependency graph is analyzed for recurrences, and unpipelined instructions that lie outside of the recurrences are expanded.
    Type: Grant
    Filed: August 30, 2004
    Date of Patent: March 17, 2009
    Assignee: International Business Machines Corporation
    Inventors: Roch Georges Archambault, Robert Frederick Enenkel, Robert William Hay, Allan Russell Martin, James Lawrence McInnes, Ronald Ian McIntosh, Mark Peter Mendell
  • Patent number: 7493611
    Abstract: A scheduling algorithm is provided for selecting the placement of instructions with internal slack into a schedule of instructions within a loop. The algorithm achieves this by pinning nodes with internal slack to corresponding nodes on the critical path of the code that have similar properties in terms of the data dependency graph, such as earliest time and latest time. The effect is that nodes with internal slack are more often optimally placed in the schedule, reducing the need for rotating registers or register copy instructions. The benefit of the present invention can primarily be seen when performing instruction scheduling or software pipelining on loop code, but can also apply to other forms of instruction scheduling when greater control of placement of nodes with internal slack is desired.
    Type: Grant
    Filed: August 30, 2004
    Date of Patent: February 17, 2009
    Assignee: International Business Machines Corporation
    Inventor: Allan Russell Martin
  • Publication number: 20090013316
    Abstract: A method, apparatus, and computer instructions for scheduling instructions for execution. Identify a series of instructions in a loop, wherein the series of instructions has a cyclic data dependency. Determine whether the series of instructions is a uniform series of instructions. Schedule execution of the uniform series of instructions within the loop to optimize execution of the loop in response to the identified series of instructions being the uniform series of instructions.
    Type: Application
    Filed: September 19, 2008
    Publication date: January 8, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Allan Russell Martin
  • Patent number: 7444628
    Abstract: A method, apparatus, and computer instructions for scheduling instructions for execution. Identify a series of instructions in a loop, wherein the series of instructions has a cyclic data dependency. Determine whether the series of instructions is a uniform series of instructions. Schedule execution of the uniform series of instructions within the loop to optimize execution of the loop in response to the identified series of instructions being the uniform series of instructions.
    Type: Grant
    Filed: August 30, 2004
    Date of Patent: October 28, 2008
    Assignee: International Business Machines Corporation
    Inventor: Allan Russell Martin
  • Patent number: 7331045
    Abstract: An improved scheduling technique for software pipelining is disclosed which is designed to find schedules requiring fewer processor clock cycles and reduce register pressure hot spots when scheduling multiple groups of instructions (e.g. as represented by multiple sub-graphs of a DDG) which are independent, and substantially identical. The improvement in instruction scheduling and reduction of hot spots is achieved by evenly distributing such groups of instructions around the schedule for a given loop.
    Type: Grant
    Filed: April 29, 2004
    Date of Patent: February 12, 2008
    Assignee: International Business Machines Corporation
    Inventors: Allan Russell Martin, James Lawrence McInnes
  • Publication number: 20040268335
    Abstract: Instructions of a loop are related in instruction chains represented by a data dependency graph with multiple first nodes for the instruction chains (either in a backward or forward direction). These instructions are modulo scheduled for execution by a processor. Execution parameters for each instruction denote execution relationships with previous instructions including latencies from execution of previous instructions and processor resources used by the instruction for execution. The instructions are ordered for scheduling according to a priority value for each instruction, which may be determined in a number of ways. Ordering starts with all instructions that have the highest priority value. Ordering continues with instructions related to instructions that have already been ordered; those instructions that are related and have a given priority value for the unordered instructions. After all instructions have been ordered they are modulo scheduled.
    Type: Application
    Filed: November 6, 2003
    Publication date: December 30, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATON
    Inventors: Allan Russell Martin, James Lawrence Mcinnes