Patents by Inventor Andrew T. Forsyth

Andrew T. Forsyth 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: 20230137812
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Application
    Filed: December 31, 2022
    Publication date: May 4, 2023
    Inventors: Andrew T. FORSYTH, Brian J. HICKMANN, Jonathan C. HALL, Christopher J. HUGHES
  • Patent number: 11599362
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Grant
    Filed: May 10, 2021
    Date of Patent: March 7, 2023
    Assignee: INTEL CORPORATION
    Inventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
  • Publication number: 20210406026
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Application
    Filed: May 10, 2021
    Publication date: December 30, 2021
    Inventors: Andrew T. FORSYTH, Brian J. HICKMANN, Jonathan C. HALL, Christopher J. HUGHES
  • Patent number: 11003455
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Grant
    Filed: April 29, 2019
    Date of Patent: May 11, 2021
    Assignee: Intel Corporation
    Inventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
  • Patent number: 10387151
    Abstract: Methods and apparatus are disclosed for accessing multiple data cache lines for scatter/gather operations. Embodiment of apparatus may comprise address generation logic to generate an address from an index of a set of indices for each of a set of corresponding mask elements having a first value. Line or bank match ordering logic matches addresses in the same cache line or different banks, and orders an access sequence to permit a group of addresses in multiple cache lines and different banks. Address selection logic directs the group of addresses to corresponding different banks in a cache to access data elements in multiple cache lines corresponding to the group of addresses in a single access cycle. A disassembly/reassembly buffer orders the data elements according to their respective bank/register positions, and a gather/scatter finite state machine changes the values of corresponding mask elements from the first value to a second value.
    Type: Grant
    Filed: September 30, 2011
    Date of Patent: August 20, 2019
    Assignee: Intel Corporation
    Inventors: Jonathan C. Hall, Sailesh Kottapalli, Andrew T. Forsyth
  • Publication number: 20190250921
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Application
    Filed: April 29, 2019
    Publication date: August 15, 2019
    Inventors: Andrew T. FORSYTH, Brian J. HICKMANN, Jonathan C. HALL, Christopher J. HUGHES
  • Patent number: 10275257
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Grant
    Filed: May 22, 2017
    Date of Patent: April 30, 2019
    Assignee: Intel Corporation
    Inventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
  • Patent number: 10157061
    Abstract: According to one embodiment, an occurrence of an instruction is fetched. The instruction's format specifies its only source operand from a single vector write mask register, and specifies as its destination a single general purpose register. In addition, the instruction's format includes a first field whose contents selects the single vector write mask register, and includes a second field whose contents selects the single general purpose register. The source operand is a write mask including a plurality of one bit vector write mask elements that correspond to different multi-bit data element positions within architectural vector registers. The method also includes, responsive to executing the single occurrence of the single instruction, storing data in the single general purpose register such that its contents represent either a first or second scalar constant based on whether the plurality of one bit vector write mask elements in the source operand are all zero.
    Type: Grant
    Filed: December 22, 2011
    Date of Patent: December 18, 2018
    Assignee: Intel Corporation
    Inventors: Jesus Corbal, Matthew J. Craighead, Bret L. Toll, Andrew T. Forsyth
  • Patent number: 10042814
    Abstract: A device, system and method for assigning values to elements in a first register, where each data field in a first register corresponds to a data element to be written into a second register, and where for each data field in the first register, a first value may indicate that the corresponding data element has not been written into the second register and a second value indicates that the corresponding data element has been written into the second register, reading the values of each of the data fields in the first register, and for each data field in the first register having the first value, gathering the corresponding data element and writing the corresponding data element into the second register, and changing the value of the data field in the first register from the first value to the second value. Other embodiments are described and claimed.
    Type: Grant
    Filed: November 14, 2014
    Date of Patent: August 7, 2018
    Assignee: Intel Corporation
    Inventors: Eric Sprangle, Anwar Rohillah, Robert Cavin, Andrew T. Forsyth, Michael Abrash
  • Patent number: 10018838
    Abstract: An electronic display is driven to compensate for aging of pixels in the electronic display. An aging factor is determined based on initial display data for a display portion of the electronic display during one or more monitored frames. The aging factor is indicative of aging of pixels in the display portion of the electronic display due to use corresponding to the initial display data. An aging counter for the display portion is increased based on the determined aging factor. A compensation value is determined for the display portion based on the aging counter for the display portion. Input display data for the display portion is modified during a subsequent frame according the determined compensation value. The display portion is driven with the modified input display data during the subsequent frame.
    Type: Grant
    Filed: August 31, 2017
    Date of Patent: July 10, 2018
    Assignee: Oculus VR, LLC
    Inventors: Evan Mark Richards, Nirav Rajendra Patel, Andrew T. Forsyth
  • Patent number: 9905168
    Abstract: A method for correcting non-uniformities of one or more display panels of a HMD (e.g., a VR headset or an AR headset) is disclosed, where the method is based on a luminance level of content being displayed. The method includes obtaining the calibration data for correcting non-uniformity of a display panel of the HMD at various brightness levels and storing the data. In response to receiving a request for providing content to be presented on the HMD, the host applies the calibration data based on a luminance level of content being rendered to correct for any non-uniformities of the one or more display panels while rendering the content for display.
    Type: Grant
    Filed: December 28, 2015
    Date of Patent: February 27, 2018
    Assignee: Oculus VR, LLC
    Inventors: Evan M. Richards, Andrew T. Forsyth, Shizhe Shen
  • Patent number: 9851973
    Abstract: A processor includes an execution pipeline having one or more execution units to execute instructions and a branch prediction unit coupled to the execution units. The branch prediction unit includes a branch history table to store prior branch predictions, a branch predictor, in response to a conditional branch instruction, to predict a branch target address of the conditional branch instruction based on the branch history table, and address match logic to compare the predicted branch target address with an address of a next instruction executed immediately following the conditional branch instruction. The address match logic is to cause the execution pipeline to be flushed if the predicted branch target address does not match the address of the next instruction to be executed.
    Type: Grant
    Filed: March 30, 2012
    Date of Patent: December 26, 2017
    Assignee: Intel Corporation
    Inventors: Andrew T. Forsyth, Renju Thomas, Jean-Luc Duprat
  • Publication number: 20170363865
    Abstract: An electronic display is driven to compensate for aging of pixels in the electronic display. An aging factor is determined based on initial display data for a display portion of the electronic display during one or more monitored frames. The aging factor is indicative of aging of pixels in the display portion of the electronic display due to use corresponding to the initial display data. An aging counter for the display portion is increased based on the determined aging factor. A compensation value is determined for the display portion based on the aging counter for the display portion. Input display data for the display portion is modified during a subsequent frame according the determined compensation value. The display portion is driven with the modified input display data during the subsequent frame.
    Type: Application
    Filed: August 31, 2017
    Publication date: December 21, 2017
    Inventors: Evan Mark Richards, Nirav Rajendra Patel, Andrew T. Forsyth
  • Patent number: 9842046
    Abstract: A method of an aspect includes receiving an instruction indicating a first source packed memory indices, a second source packed data operation mask, and a destination storage location. Memory indices of the packed memory indices are compared with one another. One or more sets of duplicate memory indices are identified. Data corresponding to each set of duplicate memory indices is loaded only once. The loaded data corresponding to each set of duplicate memory indices is replicated for each of the duplicate memory indices in the set. A packed data result in the destination storage location in response to the instruction. The packed data result includes data elements from memory locations that are indicated by corresponding memory indices of the packed memory indices when not blocked by corresponding elements of the packed data operation mask.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: December 12, 2017
    Assignee: Intel Corporation
    Inventors: Andrew T. Forsyth, Dennis R. Bradford, Jonathan C. Hall
  • Patent number: 9792115
    Abstract: A processing core is described having execution unit logic circuitry having a first register to store a first vector input operand, a second register to a store a second vector input operand and a third register to store a packed data structure containing scalar input operands a, b, c. The execution unit logic circuitry further include a multiplier to perform the operation (a*(first vector input operand))+(b*(second vector operand))+c.
    Type: Grant
    Filed: December 23, 2011
    Date of Patent: October 17, 2017
    Assignee: Intel Corporation
    Inventors: Jesus Corbal, Andrew T. Forsyth, Thomas D. Fletcher, Lisa K. Wu, Eric Sprangle
  • Patent number: 9785436
    Abstract: An apparatus and method are described for performing efficient gather operations in a pipelined processor. For example, a processor according to one embodiment of the invention comprises: gather setup logic to execute one or more gather setup operations in anticipation of one or more gather operations, the gather setup operations to determine one or more addresses of vector data elements to be gathered by the gather operations; and gather logic to execute the one or more gather operations to gather the vector data elements using the one or more addresses determined by the gather setup operations.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: October 10, 2017
    Assignee: INTEL CORPORATION
    Inventors: Edward T. Grochowski, Dennis R. Bradford, George Z. Chrysos, Andrew T. Forsyth, Michael D. Upton, Lisa K. Wu
  • Patent number: 9779686
    Abstract: An electronic display is driven to compensate for aging of pixels in the electronic display. An aging factor is determined based on initial display data for a display portion of the electronic display during one or more monitored frames. The aging factor is indicative of aging of pixels in the display portion of the electronic display due to use corresponding to the initial display data. An aging counter for the display portion is increased based on the determined aging factor. A compensation value is determined for the display portion based on the aging counter for the display portion. Input display data for the display portion is modified during a subsequent frame according the determined compensation value. The display portion is driven with the modified input display data during the subsequent frame.
    Type: Grant
    Filed: December 15, 2015
    Date of Patent: October 3, 2017
    Assignee: Oculus VR, LLC
    Inventors: Evan Mark Richards, Nirav Rajendra Patel, Andrew T. Forsyth
  • Patent number: 9766886
    Abstract: Instructions and logic provide vector linear interpolation functionality. In some embodiments, responsive to an instruction specifying: a first operand from a set of vector registers, a size of each of the vector elements, a portion of the vector elements upon which to compute linear interpolations, a second operand from a set of vector registers, and a third operand; an execution unit, reads a first, a second and a third value of the size of vector elements from corresponding data fields in the first, the second and the third operand respectively and computes an interpolated value as the first value multiplied by the second value minus the second value multiplied by the third value plus the third value.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: September 19, 2017
    Assignee: Intel Corporation
    Inventors: Jesus Corbal, Andrew T. Forsyth, Lisa K. Wu, Thomas D. Fletcher
  • Publication number: 20170255470
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode a first instruction to gather data elements from memory, the first instruction having a first operand specifying a first storage location and a second operand specifying a first memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the first instruction, to read contiguous a first and a second of the data elements from a memory location based on the first memory address indicated by the second operand, and to store the first data element in a first entry of the first storage location and a second data element in a second entry of a second storage location corresponding to the first entry of the first storage location.
    Type: Application
    Filed: May 22, 2017
    Publication date: September 7, 2017
    Applicant: Intel Corporation
    Inventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
  • Patent number: 9733935
    Abstract: A method of processing an instruction is described that includes fetching and decoding the instruction. The instruction has separate destination address, first operand source address and second operand source address components. The first operand source address identifies a location of a first mask pattern in mask register space. The second operand source address identifies a location of a second mask pattern in the mask register space. The method further includes fetching the first mask pattern from the mask register space; fetching the second mask pattern from the mask register space; merging the first and second mask patterns into a merged mask pattern; and, storing the merged mask pattern at a storage location identified by the destination address.
    Type: Grant
    Filed: December 23, 2011
    Date of Patent: August 15, 2017
    Assignee: Intel Corporation
    Inventors: Jesus Corbal, Andrew T. Forsyth, Roger Espasa, Manel Fernandez, Thomas D. Fletcher