Patents by Inventor Eric Mahurin

Eric Mahurin 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: 11561792
    Abstract: A transient load instruction for a processor may include a transient or temporary load instruction that is executed in parallel with a plurality of input operands. The temporary load instruction loads a memory value into a temporary location for use within the instruction packet. According to some examples, a VLIW based microprocessor architecture may include a temporary cache for use in writing/reading a temporary memory value during a single VLIW packet cycle. The temporary cache is different from the normal register bank that does not allow writing and then reading the value just written during the same VLIW packet cycle.
    Type: Grant
    Filed: June 8, 2015
    Date of Patent: January 24, 2023
    Assignee: Qualcomm Incorporated
    Inventors: Eric Mahurin, Jakub Pawel Golab
  • Patent number: 11372804
    Abstract: A processor includes a vector register configured to load data responsive to a special purpose load instruction. The processor also includes circuitry configured to replicate a selected sub-vector value from the vector register.
    Type: Grant
    Filed: May 16, 2018
    Date of Patent: June 28, 2022
    Assignee: Qualcomm Incorporated
    Inventors: Eric Mahurin, Erich Plondke, David Hoyle
  • Patent number: 10625752
    Abstract: A system and a method for error-correction code (“ECC”) error handling is described herein. In one aspect, the system and method may operate an ECC function on raw data. The ECC function may include generating ECC syndrome data by an ECC syndrome data generating module. The ECC syndrome data may be derived from the raw data. The system and a method may further inject a fault based on the ECC syndrome data or the raw data. The system and a method may further determine whether the ECC error detected by the ECC checker corresponds to a malfunction of the ECC function or the fault injected based on the ECC syndrome data or the raw data.
    Type: Grant
    Filed: December 12, 2017
    Date of Patent: April 21, 2020
    Assignee: Qualcomm Incorporated
    Inventors: Mohammad Reza Kakoee, Rahul Gulati, Eric Mahurin, Suresh Kumar Venkumahanti, Dexter Chun
  • Publication number: 20190354508
    Abstract: A processor includes a vector register configured to load data responsive to a special purpose load instruction. The processor also includes circuitry configured to replicate a selected sub-vector value from the vector register.
    Type: Application
    Filed: May 16, 2018
    Publication date: November 21, 2019
    Inventors: Eric Mahurin, Erich Plondke, David Hoyle
  • Patent number: 10474461
    Abstract: A method of determining an execution order of memory operations performed by a processor includes executing at least one single-instruction, multiple-data (SIMD) scatter operation by the processor to store data to a memory. The method further includes executing one or more instructions by the processor to determine the execution order of a set of memory operations. The set of memory operations includes the at least one SIMD scatter operation.
    Type: Grant
    Filed: September 22, 2016
    Date of Patent: November 12, 2019
    Assignee: QUALCOMM Incorporated
    Inventors: Eric Mahurin, Lucian Codrescu
  • Patent number: 10459731
    Abstract: A first register has a lane storing first input data and a second register has a lane storing second input data elements. A width of the lane of the second register is equal to a width of the lane of the first register. A single-instruction-multiple-data (SIMD) lane has a lane width equal to the width of the lane of the first register. The SIMD lane is configured to perform a sliding window operation on the first input data elements in the lane of the first register and the second input data elements in the lane of the second register. Performing the sliding window operation includes determining a result based on a first input data element stored in a first position of the first register and a second input data element stored in a second position of the second register. The second position is different from the first position.
    Type: Grant
    Filed: July 20, 2015
    Date of Patent: October 29, 2019
    Assignee: QUALCOMM Incorporated
    Inventors: Eric Mahurin, Jakub Pawel Golab
  • Patent number: 10346133
    Abstract: A processor includes an integer multiplier configured to execute an integer multiply instruction to multiply significand bits of at least one floating point operand of a floating point multiply operation. The processor also includes a floating point multiplier configured to execute a special purpose floating point multiply accumulate instruction with respect to an intermediate result of the floating point multiply operation and the at least one floating point operand to generate a final floating point multiplication result.
    Type: Grant
    Filed: December 21, 2017
    Date of Patent: July 9, 2019
    Assignee: QUALCOMM Incorporated
    Inventors: Albert Danysh, Erich Plondke, Eric Mahurin
  • Publication number: 20190196785
    Abstract: A processor includes an integer multiplier configured to execute an integer multiply instruction to multiply significand bits of at least one floating point operand of a floating point multiply operation. The processor also includes a floating point multiplier configured to execute a special purpose floating point multiply accumulate instruction with respect to an intermediate result of the floating point multiply operation and the at least one floating point operand to generate a final floating point multiplication result.
    Type: Application
    Filed: December 21, 2017
    Publication date: June 27, 2019
    Inventors: Albert Danysh, Erich Plondke, Eric Mahurin
  • Publication number: 20190176838
    Abstract: A system and a method for error-correction code (“ECC”) error handling is described herein. In one aspect, the system and method may operate an ECC function on raw data. The ECC function may include generating ECC syndrome data by an ECC syndrome data generating module. The ECC syndrome data may be derived from the raw data. The system and a method may further inject a fault based on the ECC syndrome data or the raw data. The system and a method may further determine whether the ECC error detected by the ECC checker corresponds to a malfunction of the ECC function or the fault injected based on the ECC syndrome data or the raw data.
    Type: Application
    Filed: December 12, 2017
    Publication date: June 13, 2019
    Inventors: Mohammad Reza KAKOEE, Rahul Gulati, Eric Mahurin, Suresh Kumar Venkumahanti, Dexter Chun
  • Patent number: 10162752
    Abstract: A method for storing data at contiguous memory addresses includes, at a single-instruction-multiple-data (SIMD) processor, executing a parallel-prefix valid count instruction to determine a first offset of a first data vector and to determine a second offset of a second data vector that includes valid data and invalid data. The second offset is based on the first offset and a number of positions in the first data vector that are associated with valid data. The method also includes storing first valid data from the first data vector at a first memory address of a memory and storing second valid data from the second data vector at a particular memory address of the memory. The first memory address is based on the first offset and the particular memory address is based on the second offset.
    Type: Grant
    Filed: September 22, 2016
    Date of Patent: December 25, 2018
    Assignee: QUALCOMM Incorporated
    Inventors: Eric Mahurin, David Hoyle
  • Publication number: 20180081803
    Abstract: A method for storing data at contiguous memory addresses includes, at a single-instruction-multiple-data (SIMD) processor, executing a parallel-prefix valid count instruction to determine a first offset of a first data vector and to determine a second offset of a second data vector that includes valid data and invalid data. The second offset is based on the first offset and a number of positions in the first data vector that are associated with valid data. The method also includes storing first valid data from the first data vector at a first memory address of a memory and storing second valid data from the second data vector at a particular memory address of the memory. The first memory address is based on the first offset and the particular memory address is based on the second offset.
    Type: Application
    Filed: September 22, 2016
    Publication date: March 22, 2018
    Inventors: Eric Mahurin, David Hoyle
  • Publication number: 20180081634
    Abstract: A method includes retrieving, at a processor, a first instruction for performing a first piecewise Horner's method operation for a polynomial and executing the first instruction. Executing the first instruction causes the processor to perform operations including accessing one or more look-up tables based on an interval of a first function input to determine a first coefficient of the polynomial for the first input range. The operations also include determining a first partial polynomial output of the first piecewise Horner's method operation. Determining the first partial polynomial output includes multiplying a first partial polynomial input with the first function input to generate a first partial value and adding the first coefficient to the first partial value to determine the first partial polynomial output.
    Type: Application
    Filed: September 22, 2016
    Publication date: March 22, 2018
    Inventors: Eric Mahurin, David Hoyle
  • Publication number: 20180081687
    Abstract: A method of determining an execution order of memory operations performed by a processor includes executing at least one single-instruction, multiple-data (SIMD) scatter operation by the processor to store data to a memory. The method further includes executing one or more instructions by the processor to determine the execution order of a set of memory operations. The set of memory operations includes the at least one SIMD scatter operation.
    Type: Application
    Filed: September 22, 2016
    Publication date: March 22, 2018
    Inventors: Eric Mahurin, Lucian Codrescu
  • Publication number: 20170024218
    Abstract: A first register has a lane storing first input data and a second register has a lane storing second input data elements. A width of the lane of the second register is equal to a width of the lane of the first register. A single-instruction-multiple-data (SIMD) lane has a lane width equal to the width of the lane of the first register. The SIMD lane is configured to perform a sliding window operation on the first input data elements in the lane of the first register and the second input data elements in the lane of the second register. Performing the sliding window operation includes determining a result based on a first input data element stored in a first position of the first register and a second input data element stored in a second position of the second register. The second position is different from the first position.
    Type: Application
    Filed: July 20, 2015
    Publication date: January 26, 2017
    Inventors: Eric Mahurin, Jakub Pawel Golab
  • Publication number: 20160357558
    Abstract: A transient load instruction for a processor may include a transient or temporary load instruction that is executed in parallel with a plurality of input operands. The temporary load instruction loads a memory value into a temporary location for use within the instruction packet. According to some examples, a VLIW based microprocessor architecture may include a temporary cache for use in writing/reading a temporary memory value during a single VLIW packet cycle. The temporary cache is different from the normal register bank that does not allow writing and then reading the value just written during the same VLIW packet cycle.
    Type: Application
    Filed: June 8, 2015
    Publication date: December 8, 2016
    Inventors: Eric MAHURIN, Jakub Pawel GOLAB
  • Patent number: 7821298
    Abstract: A method for and the results of implementing a tree of multiplexing are disclosed. At each level of the tree, a sum-of-products or a product-of-sums representation is chosen to maximize inter-level optimizations.
    Type: Grant
    Filed: August 10, 2008
    Date of Patent: October 26, 2010
    Inventor: Eric Mahurin
  • Publication number: 20100033212
    Abstract: A method for and the results of implementing a tree of multiplexing are disclosed. At each level of the tree, a sum-of-products or a product-of-sums representation is chosen to maximize inter-level optimizations.
    Type: Application
    Filed: August 10, 2008
    Publication date: February 11, 2010
    Inventor: Eric Mahurin