Patents by Inventor Jayashankar Bharadwaj

Jayashankar Bharadwaj 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: 20140237303
    Abstract: An apparatus and method are described for detecting and responding to fault conditions in a processor. For example, one embodiment of a method comprises: reading each active element in succession from a first vector register, each active element specifying an address for a gather or load operation; detecting one or more fault conditions associated with one or more of the active elements; for each active element read in succession prior to a detected fault condition on an element other than the first active element, storing the data loaded from an address associated with the active element in a first output vector register; and for each active element associated with the detected fault condition and following the detected fault condition, setting a bit in an output mask register to indicate the detected fault condition.
    Type: Application
    Filed: December 23, 2011
    Publication date: August 21, 2014
    Inventors: Jayashankar Bharadwaj, Victor W. Lee, Kim Daehyun, Nalini Vasudevan, Tin-Fook Ngai, Albert Hartono, Sara S. Baghsorkhi
  • Publication number: 20140223139
    Abstract: Embodiments of systems, apparatuses, and methods for performing in a computer processor generation of a predicate mask based on vector comparison in response to a single instruction are described.
    Type: Application
    Filed: December 23, 2011
    Publication date: August 7, 2014
    Inventors: Victor W. Lee, Daehyun Kim, Tin-Fook Ngai, Jayashankar Bharadwaj, Albert Hartono, Sara Baghsorkhi, Nalini Vasudevan
  • Publication number: 20140189288
    Abstract: A vector reduction instruction with non-unit strided access pattern is received and executed by the execution circuitry of a processor. In response to the instruction, the execution circuitry performs an associative reduction operation on data elements of a first vector register. Based on values of the mask register and a current element position being processed, the execution circuitry sequentially set one or more data elements of the first vector register to a result, which is generated by the associative reduction operation applied to both a previous data element of the first vector register and a data clement of a third vector register. The previous data element is located more than one element position away from the current element position.
    Type: Application
    Filed: December 28, 2012
    Publication date: July 3, 2014
    Inventors: Albert Hartono, Jayashankar Bharadwaj, Nalini Vasudevan, Sara S. Baghsorkhi, Victor W. Lee, Daehyun Kim
  • Publication number: 20140189323
    Abstract: An apparatus and method for propagating conditionally evaluated values. For example, a method according to one embodiment comprises: reading each value contained in an input mask register, each value being a true value or a false value and having a bit position associated therewith; for each true value read from the input mask register, generating a first result containing the bit position of the true value; for each false value read from the input mask register following the first true value, adding the vector length of the input mask register to a bit position of the last true value read from the input mask register to generate a second result; and storing each of the first results and second results in bit positions of an output register corresponding to the bit positions read from the input mask register.
    Type: Application
    Filed: December 23, 2011
    Publication date: July 3, 2014
    Inventors: Jayashankar Bharadwaj, Nalini Vasudevan, Victor W. Lee, Daehyun Kim, Albert Hartono, Sara S. Baghsorkhi
  • Publication number: 20140181580
    Abstract: According to one embodiment, a processor includes an instruction decoder to decode an instruction to read a plurality of data elements from memory, the instruction having a first operand specifying a storage location, a second operand specifying a bitmask having one or more bits, each bit corresponding to one of the data elements, and a third operand specifying a memory address storing a plurality of data elements. The processor further includes an execution unit coupled to the instruction decoder, in response to the instruction, to read one or more data elements speculatively, based on the bitmask specified by the second operand, from a memory location based on the memory address indicated by the third operand, and to store the one or more data elements in the storage location indicated by the first operand.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Inventors: Jayashankar BHARADWAJ, Nalini VASUDEVAN, Victor W. LEE, Sara S. BAGHSORKHI, Albert HARTONO, Daehyun KIM
  • Publication number: 20140096119
    Abstract: Loop vectorization methods and apparatus are disclosed. An example method includes setting a dynamic adjustment value of a vectorization loop; executing the vectorization loop to vectorize a loop by grouping iterations of the loop into one or more vectors; identifying a dependency between iterations of the loop as; and setting the dynamic adjustment value based on the identified dependency.
    Type: Application
    Filed: September 28, 2012
    Publication date: April 3, 2014
    Inventors: NALINI VASUDEVAN, JAYASHANKAR BHARADWAJ, CHRISTOPHER J. HUGHES, MILIND B. GIRKAR, MARK J. CHARNEY, ROBERT VALENTINE, VICTOR W. LEE, DAEHYUN KIM, ALBERT HARTONO, SARA S. BAGHSORKHI
  • Publication number: 20140089634
    Abstract: An apparatus, system and method are described for identifying identical elements in a vector register.
    Type: Application
    Filed: December 23, 2011
    Publication date: March 27, 2014
    Inventors: Victor W. Lee, Daehyun Kim, Tin-Fook Ngai, Jayashankar Bharadwaj, Albert Hartono, Sara S. Baghsorkhi, Nalini Vasudevan
  • Publication number: 20130332701
    Abstract: An apparatus and method are described for selecting elements to be used in a vector computation. For example, a method according to one embodiment includes the following operations: specifying whether to identify the first, last or next after last active element of an input mask register using an immediate value; identifying the first, last or next after last active element in the input mask register according to the immediate value; reading a value from an input vector register corresponding to the identified first, last or next after last active element in the input mask register; and writing the value to an output vector register.
    Type: Application
    Filed: December 23, 2011
    Publication date: December 12, 2013
    Inventors: Jayashankar Bharadwaj, Nalini Vasudevan, Victor W. Lee, Daehyun Kim, Albert Hartono, Sara S. Baghsorkhi
  • Publication number: 20130311530
    Abstract: An apparatus and method are described for performing a vector reduction. For example, an apparatus according to one embodiment comprises: a reduction logic tree comprised of a set of N-1 reduction logic blocks used to perform reduction in a single operation cycle for N vector elements; a first input vector register storing a first input vector communicatively coupled to the set of reduction logic blocks; a second input vector register storing a second input vector communicatively coupled to the set of reduction logic blocks; a mask register storing a mask value controlling a set of one or more multiplexers, each of the set of multiplexers selecting a value directly from the first input vector register or an output containing a processed value from one of the reduction logic blocks; and an output vector register coupled to outputs of the one or more multiplexers to receive values output passed through by each of the multiplexers responsive to the control signals.
    Type: Application
    Filed: March 30, 2012
    Publication date: November 21, 2013
    Inventors: Victor W. Lee, Jayashankar Bharadwaj, Daehyun Kim, Nalini Vasudevan, Tin-Fook Ngai, Albert Hartono, Sara Baghsorkhi
  • Publication number: 20130275724
    Abstract: Embodiments of systems, apparatuses, and methods of performing in a computer processor dependency index vector calculation in response to an instruction that includes a first and second source writemask register operands, a destination vector register operand, and an opcode are described.
    Type: Application
    Filed: December 27, 2011
    Publication date: October 17, 2013
    Inventor: Jayashankar Bharadwaj
  • Patent number: 7512930
    Abstract: A method and apparatus for a read barrier mechanism are described. According to an embodiment, a method comprises receiving an access request for a program object; performing a combined check for a null reference or for a read barrier for the program object; and if the combined check is affirmative, performing a recovery operation.
    Type: Grant
    Filed: March 31, 2004
    Date of Patent: March 31, 2009
    Assignee: Intel Corporation
    Inventors: Ali-Reza Adl-Tabatabai, Jayashankar Bharadwaj, Tatiana Shpeisman
  • Patent number: 7487336
    Abstract: The present disclosure relates to the allocation of registers the scheduling of instructions, and, more specifically, to the classifying of operands and allocation of registers to local operands.
    Type: Grant
    Filed: December 12, 2003
    Date of Patent: February 3, 2009
    Assignee: Intel Corporation
    Inventors: Jayashankar Bharadwaj, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai
  • Patent number: 7240342
    Abstract: According to one embodiment, systems, apparatus and methods are disclosed for installing a program onto a target machine, executing the program, and responsive to a change in profile data collected while the program executes which exceeds a predetermined threshold, recompiling the program while the target machine is idle.
    Type: Grant
    Filed: June 30, 2000
    Date of Patent: July 3, 2007
    Assignee: Intel Corporation
    Inventors: Jayashankar Bharadwaj, Ravi Narayanaswamy
  • Publication number: 20050235006
    Abstract: A method and apparatus for a read barrier mechanism are described. According to an embodiment, a method comprises receiving an access request for a program object; performing a combined check for a null reference or for a read barrier for the program object; and if the combined check is affirmative, performing a recovery operation.
    Type: Application
    Filed: March 31, 2004
    Publication date: October 20, 2005
    Inventors: Ali-Reza Adl-Tabatabai, Jayashankar Bharadwaj, Tatiana Shpeisman
  • Publication number: 20050183079
    Abstract: In one embodiment of the present invention, a method includes duplicating a block of a code segment into a tail duplicate block during block layout of the code segment, thus integrating block layout and tail duplication. After such duplication, the original block may be laid out and the tail duplicate block may be added to a candidate set of blocks.
    Type: Application
    Filed: February 3, 2004
    Publication date: August 18, 2005
    Inventor: Jayashankar Bharadwaj
  • Publication number: 20050132171
    Abstract: The present disclosure relates to the allocation of registers the scheduling of instructions, and, more specifically, to the classifying of operands and allocation of registers to local operands.
    Type: Application
    Filed: December 12, 2003
    Publication date: June 16, 2005
    Inventors: Jayashankar Bharadwaj, Tatians Shpeisman, Ali-Reza Adl-Tabatabai
  • Publication number: 20040268095
    Abstract: A method to efficiently implement a null reference check has been disclosed. The method comprises executing a speculative load instruction to load data from an address, checking whether the speculative load instruction execution fails, and raising a null reference exception if the speculative load instruction fails. In one embodiment, the method includes executing a speculative load instruction to load data from an address that includes a base address, checking whether the speculative load instruction execution fails, and checking whether the base address is null if the speculative load instruction execution fails.
    Type: Application
    Filed: June 30, 2003
    Publication date: December 30, 2004
    Inventors: Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Jayashankar Bharadwaj
  • Publication number: 20040194077
    Abstract: Methods and apparatus to collect profile information with respect to computer program block(s) are disclosed. A disclosed method collects profile information with respect to target code by predicating execution of profile collection code on a predicate register value; setting the predicate register value to a first predetermined value to permit execution of the profile information collection code to collect profile information with respect to the target code; and setting the predicate register value to a second predetermined value to prevent execution of the profile collection code.
    Type: Application
    Filed: March 28, 2003
    Publication date: September 30, 2004
    Inventors: Jayashankar Bharadwaj, Dong-Yuan Chen, Ali-Reza Adl-Tabatabai
  • Patent number: 6675380
    Abstract: Path speculating instruction scheduler. According to one embodiment of the present invention instructions are placed into a control flow graph having blocks of the instructions, the control flow graph defining a number of paths of control flow through the blocks of instructions. A list of candidate instructions to be scheduled into a target block in the control flow graph for execution is built, and one of the candidate instructions is selected to be scheduled into the target block based on whether a single copy on a path property for the selected instruction in the target block will be maintained or terminated on one or more paths through the target block.
    Type: Grant
    Filed: November 12, 1999
    Date of Patent: January 6, 2004
    Assignee: Intel Corporation
    Inventors: Chris M. McKinsey, Jayashankar Bharadwaj
  • Patent number: 6446258
    Abstract: In some embodiments, the invention includes a method of compiling instructions of a program. The method includes receiving instructions for code motion and controlling the code motion while interacting with block ordering. The code motion may be done as part of various activities including instruction scheduling, partial redundancy elimination, and loop invariant removal. The scheduling may involve making an assessment of the cost of scheduling an instruction that takes into account generation and/or elimination of branches due to resulting block order update and determining whether to make the code motion based on the cost. Instruction scheduling may involve regeneration of predicate expressions to invert conditional branches.
    Type: Grant
    Filed: November 3, 1998
    Date of Patent: September 3, 2002
    Assignee: Intle Corporation
    Inventors: Christopher M. McKinsey, Jayashankar Bharadwaj