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: 20230137812Abstract: 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: ApplicationFiled: December 31, 2022Publication date: May 4, 2023Inventors: Andrew T. FORSYTH, Brian J. HICKMANN, Jonathan C. HALL, Christopher J. HUGHES
-
Patent number: 11599362Abstract: 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: GrantFiled: May 10, 2021Date of Patent: March 7, 2023Assignee: INTEL CORPORATIONInventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
-
Publication number: 20210406026Abstract: 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: ApplicationFiled: May 10, 2021Publication date: December 30, 2021Inventors: Andrew T. FORSYTH, Brian J. HICKMANN, Jonathan C. HALL, Christopher J. HUGHES
-
Patent number: 11003455Abstract: 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: GrantFiled: April 29, 2019Date of Patent: May 11, 2021Assignee: Intel CorporationInventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
-
Patent number: 10387151Abstract: 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: GrantFiled: September 30, 2011Date of Patent: August 20, 2019Assignee: Intel CorporationInventors: Jonathan C. Hall, Sailesh Kottapalli, Andrew T. Forsyth
-
Publication number: 20190250921Abstract: 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: ApplicationFiled: April 29, 2019Publication date: August 15, 2019Inventors: Andrew T. FORSYTH, Brian J. HICKMANN, Jonathan C. HALL, Christopher J. HUGHES
-
Patent number: 10275257Abstract: 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: GrantFiled: May 22, 2017Date of Patent: April 30, 2019Assignee: Intel CorporationInventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
-
Patent number: 10157061Abstract: 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: GrantFiled: December 22, 2011Date of Patent: December 18, 2018Assignee: Intel CorporationInventors: Jesus Corbal, Matthew J. Craighead, Bret L. Toll, Andrew T. Forsyth
-
Patent number: 10042814Abstract: 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: GrantFiled: November 14, 2014Date of Patent: August 7, 2018Assignee: Intel CorporationInventors: Eric Sprangle, Anwar Rohillah, Robert Cavin, Andrew T. Forsyth, Michael Abrash
-
Patent number: 10018838Abstract: 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: GrantFiled: August 31, 2017Date of Patent: July 10, 2018Assignee: Oculus VR, LLCInventors: Evan Mark Richards, Nirav Rajendra Patel, Andrew T. Forsyth
-
Patent number: 9905168Abstract: 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: GrantFiled: December 28, 2015Date of Patent: February 27, 2018Assignee: Oculus VR, LLCInventors: Evan M. Richards, Andrew T. Forsyth, Shizhe Shen
-
Patent number: 9851973Abstract: 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: GrantFiled: March 30, 2012Date of Patent: December 26, 2017Assignee: Intel CorporationInventors: Andrew T. Forsyth, Renju Thomas, Jean-Luc Duprat
-
Publication number: 20170363865Abstract: 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: ApplicationFiled: August 31, 2017Publication date: December 21, 2017Inventors: Evan Mark Richards, Nirav Rajendra Patel, Andrew T. Forsyth
-
Patent number: 9842046Abstract: 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: GrantFiled: September 28, 2012Date of Patent: December 12, 2017Assignee: Intel CorporationInventors: Andrew T. Forsyth, Dennis R. Bradford, Jonathan C. Hall
-
Patent number: 9792115Abstract: 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: GrantFiled: December 23, 2011Date of Patent: October 17, 2017Assignee: Intel CorporationInventors: Jesus Corbal, Andrew T. Forsyth, Thomas D. Fletcher, Lisa K. Wu, Eric Sprangle
-
Patent number: 9785436Abstract: 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: GrantFiled: September 28, 2012Date of Patent: October 10, 2017Assignee: INTEL CORPORATIONInventors: Edward T. Grochowski, Dennis R. Bradford, George Z. Chrysos, Andrew T. Forsyth, Michael D. Upton, Lisa K. Wu
-
Patent number: 9779686Abstract: 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: GrantFiled: December 15, 2015Date of Patent: October 3, 2017Assignee: Oculus VR, LLCInventors: Evan Mark Richards, Nirav Rajendra Patel, Andrew T. Forsyth
-
Patent number: 9766886Abstract: 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: GrantFiled: December 16, 2011Date of Patent: September 19, 2017Assignee: Intel CorporationInventors: Jesus Corbal, Andrew T. Forsyth, Lisa K. Wu, Thomas D. Fletcher
-
Publication number: 20170255470Abstract: 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: ApplicationFiled: May 22, 2017Publication date: September 7, 2017Applicant: Intel CorporationInventors: Andrew T. Forsyth, Brian J. Hickmann, Jonathan C. Hall, Christopher J. Hughes
-
Patent number: 9733935Abstract: 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: GrantFiled: December 23, 2011Date of Patent: August 15, 2017Assignee: Intel CorporationInventors: Jesus Corbal, Andrew T. Forsyth, Roger Espasa, Manel Fernandez, Thomas D. Fletcher