Patents by Inventor GUILLEM SOLE

GUILLEM SOLE 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: 20210132950
    Abstract: A processor includes packed data registers and a decode unit to decode an instruction. The instruction is to indicate a first source operand having at least one lane of bits, and a second source packed data operand having a number of sub-lane sized bit selection elements. An execution unit is coupled with the packed data registers and the decode unit. The execution unit, in response to the instruction, stores a result operand in a destination storage location. The result operand includes, a different corresponding bit for each of the number of sub-lane sized bit selection elements. A value of each bit of the result operand corresponding to a sub-lane sized bit selection element is that of a bit of a corresponding lane of bits, of the at least one lane of bits of the first source operand, which is indicated by the corresponding sub-lane sized bit selection element.
    Type: Application
    Filed: July 14, 2020
    Publication date: May 6, 2021
    Inventors: Roger Espasa, Guillem Sole, David Guillen Fandos
  • Patent number: 10713044
    Abstract: A processor includes packed data registers and a decode unit to decode an instruction. The instruction is to indicate a first source operand having at least one lane of bits, and a second source packed data operand having a number of sub-lane sized bit selection elements. An execution unit is coupled with the packed data registers and the decode unit. The execution unit, in response to the instruction, stores a result operand in a destination storage location. The result operand includes, a different corresponding bit for each of the number of sub-lane sized bit selection elements. A value of each bit of the result operand corresponding to a sub-lane sized bit selection element is that of a bit of a corresponding lane of bits, of the at least one lane of bits of the first source operand, which is indicated by the corresponding sub-lane sized bit selection element.
    Type: Grant
    Filed: September 4, 2015
    Date of Patent: July 14, 2020
    Assignee: Intel Corporation
    Inventors: Roger Espasa, Guillem Sole, David Guillen Fandos
  • Publication number: 20200097290
    Abstract: An apparatus and method for performing a vector permute.
    Type: Application
    Filed: September 4, 2019
    Publication date: March 26, 2020
    Inventors: JESUS CORBAL SAN ADRIAN, ELMOUSTAPHA OULD-AHMED-VALL, ROBERT VALENTINE, MARK J. CHARNEY, MILIND B. GIRKAR, BRET L. TOLL, ROGER ESPASA, GUILLEM SOLE, JAIRO BALART, BRIAN HICKMANN
  • Patent number: 10445092
    Abstract: A processor for performing a vector permute comprises: a source vector register to store a plurality of source data elements; a destination vector register to store a plurality of destination data elements; a control vector register to store a plurality of control data elements, each control data element corresponding to one of the destination data elements and including an N bit value indicating whether a source data element is to be copied to the corresponding destination data element; vector permute logic to compare the N bit value of each control data element to an N bit portion of an immediate to determine whether to copy a source data element to the corresponding destination data element, wherein if the N bit values match, then the vector permute logic is to identify a source data element using an index value included in the control data element.
    Type: Grant
    Filed: December 27, 2014
    Date of Patent: October 15, 2019
    Assignee: Intel Corporation
    Inventors: Jesus Corbal San Adrian, Elmoustapha Ould-Ahmed-Vall, Robert Valentine, Mark J. Charney, Milind B. Girkar, Bret L. Toll, Roger Espasa, Guillem Sole, Jairo Balart, Brian Hickman
  • Patent number: 10296334
    Abstract: Apparatus, method, and system for performing a vector bit gather are describe herein. One embodiment of a processor includes: a first vector register storing one or more source data elements, a second vector register storing one or more control elements, and a vector bit gather logic. Each of the control elements includes a plurality of bit fields, each of which is associated with a plurality of corresponding bit positions in a destination vector register and is to identify a bit from the one or more corresponding source data element to be copied to each of the plurality of corresponding bit positions. The vector bit shuffle logic is to read the bit fields from the second vector register and, for each bit field, to identify a bit from the source data elements and responsively copy it to each of the plurality of corresponding bit positions in the destination vector register.
    Type: Grant
    Filed: December 27, 2014
    Date of Patent: May 21, 2019
    Assignee: Intel Corporation
    Inventors: Elmoustapha Ould-Ahmed-Vall, Robert Valentine, Jesus Corbal San Adrian, Mark J. Charney, Guillem Sole, Roger Espasa
  • Patent number: 10296489
    Abstract: A processor including a first vector register for storing a plurality of source data elements, a second vector register for storing a plurality of control elements, and a vector bit shuffle logic. Each of the control elements in the first vector register corresponds to a different source data element and includes a plurality of bit fields. Each of the bit fields is associated with a single corresponding bit position in a destination mask register and identifies a single bit from the corresponding source data element to be copied to the single corresponding bit position in the destination mask register. The vector bit shuffle logic is to read the bit fields from the second vector register and, for each bit field, to identify a single bit from a single corresponding source data element and copy it to a single corresponding bit position in the destination mask register.
    Type: Grant
    Filed: December 27, 2014
    Date of Patent: May 21, 2019
    Assignee: Intel Corporation
    Inventors: Elmoustapha Ould-Ahmed-Vall, Jesus Corbal San Adrian, Robert Valentine, Mark J. Charney, Guillem Sole, Roger Espasa
  • Publication number: 20190138303
    Abstract: An apparatus and method are described for performing vector horizontal logical instruction. For example, one embodiment of a processor comprises: fetch logic to fetch an instruction from memory, and execution logic to determine a value of a first set of one or more data elements from a first specified set of bits of an immediate operand, wherein positions of the first set of one or more data elements determined from the first specified set of bits of the immediate operand are based on a first set of one or more index values that have a most significant bit corresponding to a packed data element at a first set of one or more positions of a destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of a first source packed data operand.
    Type: Application
    Filed: August 23, 2018
    Publication date: May 9, 2019
    Inventors: Elmoustapha OULD-AHMED-VALL, David GUILLEN FANDOS, Jesus F. SANCHEZ, Guillem SOLE, Roger ESPASA
  • Publication number: 20180032332
    Abstract: A processor of an aspect includes a decode unit to decode a three source floating point addition instruction indicating a first source operand having a first floating point data element, a second source operand having a second floating point data element, and a third source operand having a third floating point data element. An execution unit is coupled with the decode unit. The execution unit, in response to the instruction, stores a result in a destination operand indicated by the instruction. The result includes a result floating point data element that includes a first floating point rounded sum. The first floating point rounded sum represents an additive combination of a second floating point rounded sum and the third floating point data element. The second floating point rounded sum represents an additive combination of the first floating point data element and the second floating point data element.
    Type: Application
    Filed: October 9, 2017
    Publication date: February 1, 2018
    Applicant: Intel Corporation
    Inventors: Roger Espasa, Guillem Sole, Manel Fernandez
  • Publication number: 20170308383
    Abstract: A method in a processor includes receiving an instruction indicating a first source packed data operand having a first plurality of data elements each having a plurality of bit groups, and indicating a second source packed data operand having a second plurality of data elements each having a plurality of bit groups. Each data element of the first plurality corresponding to a different data element of the second plurality in a corresponding position. Each bit group in each data element of the first plurality corresponding to a different hit group in a corresponding position in a corresponding data element of the second plurality. Storing a result packed data operand in a destination storage location in response to the instruction. The result packed data operand including every other bit group of the first source packed data operand interleaved with every other corresponding bit group of the second source operand.
    Type: Application
    Filed: September 4, 2015
    Publication date: October 26, 2017
    Applicant: Intel Corporation
    Inventors: Roger Espasa, David Guillen Fandos, Guillem Sole
  • Patent number: 9785433
    Abstract: A processor includes a decode unit to decode a three source floating point addition instruction indicating a first source operand having a first floating point data element, a second source operand having a second floating point data element, and a third source operand having a third floating point data element. An execution unit is coupled with the decode unit. The execution unit, in response to the instruction, stores a result in a destination operand indicated by the instruction. The result includes a result floating point data element that includes a first floating point rounded sum. The first floating point rounded sum represents an additive combination of a second floating point rounded sum and the third floating point data element. The second floating point rounded sum represents an additive combination of the first floating point data element and the second floating point data element.
    Type: Grant
    Filed: March 12, 2015
    Date of Patent: October 10, 2017
    Assignee: Intel Corporation
    Inventors: Roger Espasa, Guillem Sole, Manel Fernandez
  • Publication number: 20170286112
    Abstract: A processor includes packed data registers and a decode unit to decode an instruction. The instruction is to indicate a first source operand having at least one lane of bits, and a second source packed data operand having a number of sub-lane sized bit selection elements. An execution unit is coupled with the packed data registers and the decode unit. The execution unit, in response to the instruction, stores a result operand in a destination storage location. The result operand includes, a different corresponding bit for each of the number of sub-lane sized bit selection elements. A value of each bit of the result operand corresponding to a sub-lane sized bit selection element is that of a bit of a corresponding lane of bits, of the at least one lane of bits of the first source operand, which is indicated by the corresponding sub-lane sized bit selection element.
    Type: Application
    Filed: September 4, 2015
    Publication date: October 5, 2017
    Applicant: Intel Corporation
    Inventors: Roger Espasa, Guillem Sole, David Guillen Fandos
  • Patent number: 9654143
    Abstract: Embodiments of an invention for consecutive bit error detection and correction are disclosed. In one embodiment, an apparatus includes a storage structure, a second storage structure, a parity checker, an error correction code (ECC) checker, and an error corrector. The first storage structure is to store a plurality of data values, a plurality of parity values, and a plurality of ECC values, each parity value corresponding to one of the plurality of data values, a first bit of each parity value corresponding to a first of a plurality of portions of a corresponding data value, wherein the first of the plurality of portions of the corresponding data value is interleaved with a second of the plurality of portions of the corresponding data value, wherein a second bit of each parity value corresponds to a second of the plurality of portions of the corresponding data value, each ECC value corresponding to one of the plurality of data values.
    Type: Grant
    Filed: June 18, 2014
    Date of Patent: May 16, 2017
    Assignee: Intel Corporation
    Inventors: Guillem Sole, Roger Espasa, Sorin Iacobovici, Brian Hickmann, Wei Wu, Thomas Fletcher
  • Publication number: 20160283242
    Abstract: An apparatus and method are described for performing vector horizontal logical instruction. For example, one embodiment of a processor comprises: fetch logic to fetch an instruction from memory, and execution logic to determine a value of a first set of one or more data elements from a first specified set of bits of an immediate operand, wherein positions of the first set of one or more data elements determined from the first specified set of bits of the immediate operand are based on a first set of one or more index values that have a most significant bit corresponding to a packed data element at a first set of one or more positions of a destination packed data operand and that have a least significant bit corresponding to a data element at a corresponding position of a first source packed data operand.
    Type: Application
    Filed: December 23, 2014
    Publication date: September 29, 2016
    Inventors: Elmoustapha OULD-AHMED-VALL, David GUILLEN FANDOS, Jesus F. SANCHEZ, Guillem SOLE, Roger ESPASA
  • Publication number: 20160188341
    Abstract: In one embodiment of the invention, a processor including a storage location configured to store a set of source packed-data operands, each of the operands having a plurality of packed-data elements that are positive or negative according to an immediate bit value within one of the operands. The processor also including: a decoder to decode an instruction requiring an input of a plurality of source operands, and an execution unit to receive the decoded instructions and to generate a result that is a sum of the source operands. In one embodiment, the result is stored back into one of the source operands or the result is stored into an operand that is independent of the source operands.
    Type: Application
    Filed: December 24, 2014
    Publication date: June 30, 2016
    Inventors: Elmoustapha OULD-AHMED-VALL, Robert Valentine, Jesus Corbal, Mark Charney, Roger Espasa, Guillem Sole, Manel Fernandez, Brian J. Hickmann
  • Publication number: 20160188333
    Abstract: An apparatus and method for mask compression. For example, one embodiment of a processor comprises: a source mask register to store a plurality of mask bits including a plurality of set bits and a plurality of bits that are not set; a destination mask register to store set bits read from the source mask register; and mask compression logic to read each of the set bits from the source mask register and to store the set bits in contiguous bit locations on one side of the destination mask register.
    Type: Application
    Filed: December 27, 2014
    Publication date: June 30, 2016
    Inventors: ELMOUSTAPHA OULD-AHMED-VALL, ROBERT VALENTINE, JESUS CORBAL SAN ADRIAN, BRETT L. TOLL, MILIND B. GIRKAR, MARK J. CHARNEY, GUILLEM SOLE, ROGER ESPASA
  • Publication number: 20160188327
    Abstract: In one embodiment of the invention, a processor device including a storage location configured to store a set of source packed-data operands, each of the operands having a plurality of packed-data elements that are positive or negative according to an immediate bit value within one of the operands. The processor also including: a decoder to decode an instruction requiring an input of a plurality of source operands, and an execution unit to receive the decoded instructions and to generate a result that is a product of the source operands. In one embodiment, the result is stored back into one of the source operands or the result is stored into an operand that is independent of the source operands.
    Type: Application
    Filed: December 24, 2014
    Publication date: June 30, 2016
    Inventors: Elmoustapha OULD-AHMED-VALL, Robert VALENTINE, Jesus CORBAL, Mark CHARNEY, Roger ESPASA, Guillem SOLE, Manel FERNANDEZ, Brian J. HICKMANN
  • Publication number: 20160188530
    Abstract: An apparatus and method for performing a vector permute.
    Type: Application
    Filed: December 27, 2014
    Publication date: June 30, 2016
    Inventors: JESUS CORBAL SAN ADRIAN, ELMOUSTAPHA OULD-AHMED-VALL, ROBERT VALENTINE, MARK J. CHARNEY, MILIND B. GIRKAR, BRET L. TOLL, ROGER ESPASA, GUILLEM SOLE, JAIRO BALART, BRIAN HICKMAN
  • Publication number: 20160188335
    Abstract: An apparatus and method for performing a vector bit gather. For example, one embodiment of a processor comprises: a first vector register to store one or more source data elements; a second vector register to store one or more control elements, each of the control elements comprising a plurality of bit fields, each bit field to be associated with a corresponding bit position in a destination vector register and to identify a bit from the one or more source data elements to be copied to each of the particular bit positions; and vector bit gather logic to read each bit field from the second vector register to identify a bit from the one or more source data elements and to responsively copy the bit from each of the one or more source data elements to each of the corresponding bit positions in the destination vector register.
    Type: Application
    Filed: December 27, 2014
    Publication date: June 30, 2016
    Inventors: ELMOUSTAPHA OULD-AHMED-VALL, ROBERT VALENTINE, JESUS CORBAL SAN ADRIAN, MARK J. CHARNEY, GUILLEM SOLE, ROGER ESPASA
  • Publication number: 20160188532
    Abstract: An apparatus and method for performing a vector bit shuffle. For example, one embodiment of a processor comprises: a first vector register to store a plurality of source data elements; a second vector register to store a plurality of control elements, each of the control elements comprising a plurality of bit fields, each bit field to be associated with a corresponding bit position in a destination mask register and to identify a bit from each of the source data elements to be copied to each of the particular bit positions; and vector bit shuffle logic to read each bit field from the second vector register to identify a bit from each of the source data elements and to responsively copy the bit from each of the source data elements to each of the corresponding bit positions in the destination mask register.
    Type: Application
    Filed: December 27, 2014
    Publication date: June 30, 2016
    Inventors: ELMOUSTAPHA OULD-AHMED-VALL, JESUS CORBAL SAN ADRIAN, ROBERT VALENTINE, MARK J. CHARNEY, GUILLEM SOLE, ROGER ESPASA
  • Publication number: 20160179523
    Abstract: An apparatus and method are described for performing a vector broadcast and XORAND logical instruction. For example, one embodiment of a processor comprises: fetch logic to fetch an instruction from memory indicating a destination packed data operand, a first source packed data operand, a second source packed data operand, and an immediate operand, and execution logic to determine a bit in the second source packed data operand based a position corresponding to the immediate value, perform a bitwise AND between the first source packed data operand and the determined bit to generate an intermediate result, perform a bitwise XOR between the destination packed data operand and the intermediate result to generate a final result, and store the final result in a storage location indicated by the destination packed data operand.
    Type: Application
    Filed: December 23, 2014
    Publication date: June 23, 2016
    Inventors: Elmoustapha OULD-AHMED-VALL, David GUILLEN FANDOS, Jesus F. SANCHEZ, Guillem SOLE, Roger ESPASA