Patents by Inventor Timothy A. Olson
Timothy A. Olson 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: 9652233Abstract: Instructions may require one or more operands to be executed, which may be provided from a register file. In the context of a GPU, however, a register file may be a relatively large structure, and reading from the register file may be energy and/or time intensive An operand cache may be used to store a subset of operands, and may use less power and have quicker access times than the register file. Hint values may be used in some embodiments to suggest that a particular operand should be stored in the operand cache (so that is available for current or future use). In one embodiment, a hint value indicates that an operand should be cached whenever possible. Hint values may be determined by software, such as a compiler, in some embodiments. One or more criteria may be used to determine hint values, such as how soon in the future or how frequently an operand will be used again.Type: GrantFiled: August 20, 2013Date of Patent: May 16, 2017Assignee: Apple Inc.Inventors: Terence M. Potter, Timothy A. Olson, James S. Blomgren, Andrew M. Havlir, Michael Geary
-
Patent number: 9600288Abstract: A system and method for efficiently accessing operands in a datapath. An apparatus includes a data operand register file and an execution pipeline with multiple stages. In addition, the apparatus includes a result bypass cache configured to store data results conveyed by at least the final stage of the execution pipeline stage. Control logic is included which is configured to determine whether source operands for an instruction entering the pipeline are available in the last stage of the pipeline or in the result bypass cache. If the source operands are available in the last stage of the pipeline or the result bypass cache, they may be obtained from one of those locations rather than reading from the register file. If the source operands are not available from the last stage or the result bypass cache, then they may be obtained from the data operand register file.Type: GrantFiled: May 7, 2012Date of Patent: March 21, 2017Assignee: Apple Inc.Inventors: Terence M. Potter, Timothy A. Olson, James S. Blomgren, Robert A. Drebin, Douglas C. Youngwith, Jon A. Loschke
-
Patent number: 9459869Abstract: Instructions may require one or more operands to be executed, which may be provided from a register file. In the context of a GPU, however, a register file may be a relatively large structure, and reading from the register file may be energy and/or time intensive An operand cache may store a subset of operands, and may use less power and have quicker access times than the register file. In some embodiments, intelligent operand prefetching may speed execution by reducing memory bank conflicts (e.g., conflicts within a register file containing multiple memory banks). An unused operand slot for another instruction (e.g., an instruction that does not require a maximum number of source operands allowed by an instruction set architecture) may be used to prefetch an operand for another instruction in one embodiment. Prefetched operands may be stored in an operand cache, and prefetching may occur based on software-provided information.Type: GrantFiled: August 20, 2013Date of Patent: October 4, 2016Assignee: Apple Inc.Inventors: Timothy A. Olson, Terence M. Potter, James S. Blomgren, Andrew M. Havlir
-
Patent number: 9378146Abstract: Instructions may require one or more operands to be executed, which may be provided from a register file. In the context of a GPU, however, a register file may be a relatively large structure, and reading from a register file may be energy and/or time intensive An operand cache may be used to store a subset of operands, and may use less power and have quicker access times than the register file. Selectors (e.g., multiplexers) may be used to read operands from the operand cache. Power savings may be achieved in some embodiments by activating only a subset of the selectors, which may be done by activators (e.g. flip-flops). Operands may also be concurrently provided to two or more locations via forwarding, which may be accomplished via a source selection unit in some embodiments. Operand forwarding may also reduce power and/or speed execution in one or more embodiments.Type: GrantFiled: August 20, 2013Date of Patent: June 28, 2016Assignee: Apple Inc.Inventors: James S. Blomgren, Terence M. Potter, Timothy A. Olson, Andrew M. Havlir
-
Publication number: 20150058572Abstract: Instructions may require one or more operands to be executed, which may be provided from a register file. In the context of a GPU, however, a register file may be a relatively large structure, and reading from the register file may be energy and/or time intensive An operand cache may store a subset of operands, and may use less power and have quicker access times than the register file. In some embodiments, intelligent operand prefetching may speed execution by reducing memory bank conflicts (e.g., conflicts within a register file containing multiple memory banks). An unused operand slot for another instruction (e.g., an instruction that does not require a maximum number of source operands allowed by an instruction set architecture) may be used to prefetch an operand for another instruction in one embodiment. Prefetched operands may be stored in an operand cache, and prefetching may occur based on software-provided information.Type: ApplicationFiled: August 20, 2013Publication date: February 26, 2015Applicant: Apple Inc.Inventors: Timothy A. Olson, Terence M. Potter, James S. Blomgren, Andrew M. Havlir
-
Publication number: 20150058573Abstract: Instructions may require one or more operands to be executed, which may be provided from a register file. In the context of a GPU, however, a register file may be a relatively large structure, and reading from the register file may be energy and/or time intensive An operand cache may be used to store a subset of operands, and may use less power and have quicker access times than the register file. Selectors (e.g., multiplexers) may be used to read operands from the operand cache. Power savings may be achieved in some embodiments by activating only a subset of the selectors, which may be done by activators (e.g. flip-flops). Operands may also be concurrently provided to two or more locations via forwarding, which may be accomplished via a source selection unit in some embodiments. Operand forwarding may also reduce power and/or speed execution in one or more embodiments.Type: ApplicationFiled: August 20, 2013Publication date: February 26, 2015Applicant: Apple Inc.Inventors: James S. Blomgren, Terence M. Potter, Timothy A. Olson, Andrew M. Havlir
-
Publication number: 20150058571Abstract: Instructions may require one or more operands to be executed, which may be provided from a register file. In the context of a GPU, however, a register file may be a relatively large structure, and reading from the register file may be energy and/or time intensive An operand cache may be used to store a subset of operands, and may use less power and have quicker access times than the register file. Hint values may be used in some embodiments to suggest that a particular operand should be stored in the operand cache (so that is available for current or future use). In one embodiment, a hint value indicates that an operand should be cached whenever possible. Hint values may be determined by software, such as a compiler, in some embodiments. One or more criteria may be used to determine hint values, such as how soon in the future or how frequently an operand will be used again.Type: ApplicationFiled: August 20, 2013Publication date: February 26, 2015Applicant: Apple Inc.Inventors: Terence M. Potter, Timothy A. Olson, James S. Blomgren, Andrew M. Havlir, Michael Geary
-
Patent number: 8833481Abstract: System for controlling wing tool bars of an agricultural implement are provided. One implement includes a tool bar assembly having a central tool bar and a first wing tool bar rotatably coupled to an end of the central tool bar. The implement also includes a first actuator coupled to the first wing tool bar and to the central tool bar, and configured to raise and lower the first wing tool bar. The implement includes a solenoid controlled valve fluidly coupled to the first actuator. The implement also includes a switch electrically coupled to the valve. The switch measures an angle of the first wing tool bar relative to the central tool bar and is configured to transition the valve between a first and a second position based on an angle of the first wing tool bar relative to the central tool bar.Type: GrantFiled: September 6, 2012Date of Patent: September 16, 2014Assignee: CNH Industrial America LLCInventors: Timothy R. Blunier, Timothy A. Olson
-
Patent number: 7975133Abstract: A system and method are provided for updating a speculative global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts microprocessor instructions with consecutive operations, including a conditional branch operation with an associated first branch address. A speculative global history record (SGHR) of conditional branch resolutions and predictions is accessed and hashed with the first branch address, creating a first hash result. The first hash result is used to index a branch history table (BHT) of previous first branch resolutions. As a result, a first branch prediction is made, and the SGHR is updated with the first branch prediction. A non-speculative global history record (NSGHR) of branch resolutions is updated with the resolution of the first branch operation, and if the first branch prediction is incorrect, the SGHR is corrected using the NSGHR.Type: GrantFiled: January 29, 2011Date of Patent: July 5, 2011Assignee: Applied Micro Circuits CorporationInventors: Timothy A. Olson, Terrence Matthew Potter, Jon A. Loschke
-
Patent number: 7904705Abstract: A system and method are provided for updating a speculative global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts microprocessor instructions with consecutive operations, including a conditional branch operation with an associated first branch address. A speculative global history record (SGHR) of conditional branch resolutions and predictions is accessed and hashed with the first branch address, creating a first hash result. The first hash result is used to index a branch history table (BHT) of previous first branch resolutions. As a result, a first branch prediction is made, and the SGHR is updated with the first branch prediction. A non-speculative global history record (NSGHR) of branch resolutions is updated with the resolution of the first branch operation, and if the first branch prediction is incorrect, the SGHR is corrected using the NSGHR.Type: GrantFiled: March 11, 2010Date of Patent: March 8, 2011Assignee: Applied Micro Circuits CorporationInventors: Timothy A. Olson, Terrence Matthew Potter, Jon A. Loschke
-
Patent number: 7844806Abstract: A system and method are provided for updating a global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts a microprocessor instruction of consecutive operations, including a conditional branch operation with an associated branch address, at a first stage in a pipelined microprocessor execution process. A global history record (GHR) of conditional branch resolutions and predictions is accessed and hashed with the branch address, creating a first hash result. The first hash result is used to access an indexed branch history table (BHT) of branch direction counts and the BHT is used to make a branch prediction. If the branch prediction being “taken”, the current GHR value is left-shifted and hashed with the branch address, creating a second hash result which is used in creating an updated GHR.Type: GrantFiled: January 31, 2008Date of Patent: November 30, 2010Assignee: Applied Micro Circuits CorporationInventors: Jon A. Loschke, Timothy A. Olson, Terrence Matthew Potter
-
Publication number: 20100169627Abstract: A system and method are provided for updating a speculative global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts microprocessor instructions with consecutive operations, including a conditional branch operation with an associated first branch address. A speculative global history record (SGHR) of conditional branch resolutions and predictions is accessed and hashed with the first branch address, creating a first hash result. The first hash result is used to index a branch history table (BHT) of previous first branch resolutions. As a result, a first branch prediction is made, and the SGHR is updated with the first branch prediction. A non-speculative global history record (NSGHR) of branch resolutions is updated with the resolution of the first branch operation, and if the first branch prediction is incorrect, the SGHR is corrected using the NSGHR.Type: ApplicationFiled: March 11, 2010Publication date: July 1, 2010Inventors: Timothy A. Olson, Terrence Matthew Potter, Jon A. Loschke
-
Patent number: 7707398Abstract: A system and method are provided for updating a speculative global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts microprocessor instructions with consecutive operations, including a conditional branch operation with an associated first branch address. A speculative global history record (SGHR) of conditional branch resolutions and predictions is accessed and hashed with the first branch address, creating a first hash result. The first hash result is used to index a branch history table (BHT) of previous first branch resolutions. As a result, a first branch prediction is made, and the SGHR is updated with the first branch prediction. A non-speculative global history record (NSGHR) of branch resolutions is updated with the resolution of the first branch operation, and if the first branch prediction is incorrect, the SGHR is corrected using the NSGHR.Type: GrantFiled: November 13, 2007Date of Patent: April 27, 2010Assignee: Applied Micro Circuits CorporationInventors: Timothy A. Olson, Terrence Matthew Potter, Jon A. Loschke
-
Publication number: 20090198984Abstract: A system and method are provided for updating a global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts a microprocessor instruction of consecutive operations, including a conditional branch operation with an associated branch address, at a first stage in a pipelined microprocessor execution process. A global history record (GHR) of conditional branch resolutions and predictions is accessed and hashed with the branch address, creating a first hash result. The first hash result is used to access an indexed branch history table (BHT) of branch direction counts and the BHT is used to make a branch prediction. If the branch prediction being “taken”, the current GHR value is left-shifted and hashed with the branch address, creating a second hash result which is used in creating an updated GHR.Type: ApplicationFiled: January 31, 2008Publication date: August 6, 2009Inventors: Jon A. Loschke, Timothy A. Olson, Terrence Matthew Potter
-
Publication number: 20090125707Abstract: A system and method are provided for updating a speculative global history prediction record in a microprocessor system using pipelined instruction processing. The method accepts microprocessor instructions with consecutive operations, including a conditional branch operation with an associated first branch address. A speculative global history record (SGHR) of conditional branch resolutions and predictions is accessed and hashed with the first branch address, creating a first hash result. The first hash result is used to index a branch history table (BHT) of previous first branch resolutions. As a result, a first branch prediction is made, and the SGHR is updated with the first branch prediction. A non-speculative global history record (NSGHR) of branch resolutions is updated with the resolution of the first branch operation, and if the first branch prediction is incorrect, the SGHR is corrected using the NSGHR.Type: ApplicationFiled: November 13, 2007Publication date: May 14, 2009Inventors: Timothy A. Olson, Terrence Matthew Potter, Jon A. Loschke
-
Patent number: 7219326Abstract: The matching algorithm of the layout synthesis method and apparatus disclosed locates transistor pattern matches in a design, links a parameterized tile to each identified match, and adjusts certain variable parameters of the linked parameterized tile to meet the physical design requirements of each located match. Each transistor pattern corresponds to a parameterized tile, which is an actual physical representation of the corresponding pattern and includes variable parameters, which may include transistor size. The matching algorithm locates matches in the design for an ordered list of patterns, names each located match, links the proper parameterized tile to each named match, and adjusts the tile's variable parameters as required. Transistors in the design are included in one and only one named located match.Type: GrantFiled: December 16, 2003Date of Patent: May 15, 2007Assignee: Intrinsity, Inc.Inventors: Jeffrey B. Reed, James S. Blomgren, Donald W. Glowka, Timothy A. Olson, Thomas W. Rudwick
-
Patent number: 6898691Abstract: This invention discloses a group of instructions, block4 and block4v, in a matrix processor 16 that rearranges data between vector and matrix forms of an A×B matrix of data 120 where the data matrix includes one or more 4×4 sub-matrices of data 160-166. The instructions of this invention simultaneously swaps row or columns between the first 140, second 142, third 144, and fourth 146 matrix registers according to the instructions that perform predefined matrix tensor operations on the data matrix that includes one of the following group of operations: swapping rows between the different individual matrix registers, or swapping columns between the different individual matrix registers. Additionally, successive iterations or combinations of the block4 and or block4v instructions perform standard tensor matrix operations from the following group of matrix operations: transpose, shuffle, and deal.Type: GrantFiled: June 6, 2002Date of Patent: May 24, 2005Assignee: Intrinsity, Inc.Inventors: James S. Blomgren, Timothy A. Olson, Christophe Harle
-
Publication number: 20020198911Abstract: This invention discloses a group of instructions, block4 and block4v, in a matrix processor 16 that rearranges data between vector and matrix forms of an A×B matrix of data 120 where the data matrix includes one or more 4×4 sub-matrices of data 160-166. The instructions of this invention simultaneously swaps row or columns between the first 140, second 142, third 144, and fourth 146 matrix registers according to the instructions that perform predefined matrix tensor operations on the data matrix that includes one of the following group of operations: swapping rows between the different individual matrix registers, or swapping columns between the different individual matrix registers. Additionally, successive iterations or combinations of the block4 and or block4v instructions perform standard tensor matrix operations from the following group of matrix operations: transpose, shuffle, and deal.Type: ApplicationFiled: June 6, 2002Publication date: December 26, 2002Inventors: James S. Blomgren, Timothy A. Olson, Christophe Harle
-
Patent number: 5678930Abstract: A bearing assembly has first and second trunnions supporting a bearing and defining a trunnion pivot axis. In the improvement, each of the trunnions is mounted in and supported by a separate cushion member of annular shape. The assembly permits bearing pivoting about the trunnion pivot axis (i.e., about the X axis) and the cushion members permit limited freedom of movement of the trunnions in axes (i.e., the Y and/or Z axes) which are angular to the pivot axis. The new bearing assembly is ideal for use on an earth-working implement such as a disc harrow.Type: GrantFiled: February 12, 1996Date of Patent: October 21, 1997Assignee: Case CorporationInventors: Jimmy R. Kreftmeyer, Theodore M. Clarke, Timothy A. Olson
-
Patent number: 5317715Abstract: Methods and apparatus are disclosed for transferring data to and from the Local Bus of a reduced instruction set computer (RISC) system, to which a first set of high performance devices, including at least one central processor ("CPU"), is attached, and a Remote Bus, to which a second set of relatively lower performance devices is attached, in a manner that does not limit the RISC processor's performance. According to the preferred embodiment of the invention, a RISC architecture is disclosed that includes a novel data transfer controller ("DTC"), or set of DTCs, suitable for performing the aforesaid data transfer function between the high performance Local Bus and one or more Remote Buses to which complete subsystems or peripherals, typically having different (and lower) performance characteristics, are attached. The resulting RISC arthitecture permits commercially available peripherals and subsystems to be used with high performance RISC processors without limiting RISC system performance.Type: GrantFiled: July 10, 1992Date of Patent: May 31, 1994Assignee: Advanced Micro Devices, Inc.Inventors: William M. Johnson, Timothy A. Olson, Drew J. Dutton, Sherman Lee, David W. Stoenner