Patents by Inventor Avinash Sodani

Avinash Sodani 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: 20080250233
    Abstract: A method and apparatus for providing fairness in a multi-processing element environment is herein described. Mask elements are utilized to associated portions of a reservation station with each processing element, while still allowing common access to another portion of reservation station entries. Additionally, bias logic biases selection of processing elements in a pipeline away from a processing element associated with a blocking stall to provide fair utilization of the pipeline.
    Type: Application
    Filed: April 9, 2007
    Publication date: October 9, 2008
    Inventors: Morris Marden, Matthew Merten, Alexandre Farcy, Avinash Sodani, James Hadley, Ilhyun Kim
  • Patent number: 7404065
    Abstract: In one embodiment, a method for flow optimization and prediction for vector streaming single instruction, multiple data (SIMD) extension (VSSE) memory operations is disclosed. The method comprises generating an optimized micro-operation (?op) flow for an instruction to operate on a vector if the instruction is predicted to be unmasked and unit-stride, the instruction to access elements in memory, and accessing via the optimized ?op flow two or more of the elements at the same time without determining masks of the two or more elements. Other embodiments are also described.
    Type: Grant
    Filed: December 21, 2005
    Date of Patent: July 22, 2008
    Assignee: Intel Corporation
    Inventors: Stephan Jourdan, Per Hammarlund, Michael Fetterman, Michael P. Cornaby, Glenn Hinton, Avinash Sodani
  • Publication number: 20080148282
    Abstract: Method, apparatus and system embodiments provide a register to track the oldest exception event or sticky event in a processor. The processor may be an out-of-order processor. Dispatched instructions (or micro-ops) may be maintained in a queue, such as a reorder buffer (ROB), for in-order retirement. For at least one embodiment, event information is maintained only in the register and is not maintained in a ROB. For at least one other embodiment, event information is maintained in a ROB entry for some events and in the register for others. For such latter embodiment, a retire engine takes the contents of both the ROB entry and the register into account when determining whether to take an exception or otherwise initiate a handling sequence during in-order instruction retirement. Other embodiments are also described and claimed.
    Type: Application
    Filed: December 18, 2006
    Publication date: June 19, 2008
    Inventors: Avinash Sodani, Vijaykumar B. Kadgi, Zeev Sperber
  • Patent number: 7363430
    Abstract: A system may include M cache entries, each of the M cache entries to transmit a signal indicating a read from or a write to the cache entry and comprising a data register and a memory address register, and K layers of decision cells, where K=log2M. The K layers M/2 decision cells of a first layer to indicate the other one of the respective two of the M cache entries and to transmit a hit signal in response to the signal, a second layer of M/4 decision cells to enable the other one of the respective two of the M/2 decision cells of the first layer and transmit a second hit signal in response to the signal, a (K?1)th layer of two decision cells to enable the other one of the respective two decision cells of the (K?2)th layer and transmit a third hit signal in response to the second hit signal, and a Kth layer of a root decision cell to enable the other one of the respective two decision cells of the (K?1)th layer in response to the third hit signal.
    Type: Grant
    Filed: April 6, 2005
    Date of Patent: April 22, 2008
    Assignee: Intel Corporation
    Inventors: Samie B. Samaan, Avinash Sodani
  • Publication number: 20080082796
    Abstract: In one embodiment, the present invention includes a method for determining if an instruction of a first thread dispatched from a first queue associated with the first thread is stalled in a pipestage of a pipeline, and if so, dispatching an instruction of a second thread from a second queue associated with the second thread to the pipeline if the second thread is not stalled. Other embodiments are described and claimed.
    Type: Application
    Filed: September 29, 2006
    Publication date: April 3, 2008
    Inventors: Matthew Merten, Avinash Sodani, James Hadley, Alexandre Farcy, Iredamola Olopade
  • Publication number: 20080082791
    Abstract: In one embodiment, the present invention includes a method for assigning a first identifier to a first instruction that is to write control information into a configuration register, assigning the first identifier to a second instruction that is to read the control information written by the first instruction, and storing the second instruction in a first structure of a processor with the first identifier. Other embodiments are described and claimed.
    Type: Application
    Filed: September 29, 2006
    Publication date: April 3, 2008
    Inventors: Srinivas Chennupaty, Avinash Sodani, Brent Boswell, Mark Seconi
  • Publication number: 20080072019
    Abstract: A technique to filter bogus instructions from a processor pipeline. At least one embodiment of the invention detects a bogus event, removes only instructions from the processor corresponding to the bogus event without affecting instructions not corresponding to the bogus event.
    Type: Application
    Filed: September 19, 2006
    Publication date: March 20, 2008
    Inventors: Avinash Sodani, Ranjani Iyer, Sean Mirkes, Sebastien Hily, David Koufaty, Stephan Jourdan, Zhongying Zhang
  • Publication number: 20080005535
    Abstract: Apparatus, systems and methods for speculative scheduling of uops after allocation are disclosed including an apparatus having logic to schedule a micro-operation (uop) for execution before source data of the uop is ready. The apparatus further includes logic to cancel dispatching of the uop for execution if the source data is invalid. Other implementations are disclosed.
    Type: Application
    Filed: June 30, 2006
    Publication date: January 3, 2008
    Inventors: Avinash Sodani, Rahul Kulkarni, David K. Li
  • Publication number: 20070300049
    Abstract: A technique to perform three-source instructions. At least one embodiment of the invention relates to converting a three-source instruction into at least two instructions identifying no more than two source values.
    Type: Application
    Filed: June 27, 2006
    Publication date: December 27, 2007
    Inventors: Avinash Sodani, Stephan Jourdan, Alexandre Farcy, Per Hammarlund
  • Publication number: 20070283129
    Abstract: According to one embodiment, a method is disclosed. The method includes receiving a value at a vector length (VL) tracker and establishing a VL for subsequent micro-operations (?ops) that are to be executed corresponding to the value.
    Type: Application
    Filed: December 28, 2005
    Publication date: December 6, 2007
    Inventors: Stephan Jourdan, Avinash Sodani, Michael Fetterman, Per Hammarlund, Glenn Hinton
  • Patent number: 7272701
    Abstract: A method and apparatus for a microprocessor with a divided register alias table is disclosed. In one embodiment, a first register alias table may have a full set of read and write ports, and a second register alias table may have a smaller set of read and write ports. The second register alias table may include translations for those logical register addresses that are used less frequently. When the second register alias table is called upon to translate more logical register addresses than it has read ports, in one embodiment a pipeline stall may permit additional time to utilize the limited read ports. In another embodiment, additional build rules for a trace cache may be utilized.
    Type: Grant
    Filed: October 22, 2003
    Date of Patent: September 18, 2007
    Assignee: Intel Corporation
    Inventor: Avinash Sodani
  • Publication number: 20070157008
    Abstract: Microarchitecture policies and structures to predict execution clusters and facilitate inter-cluster communication are disclosed. In disclosed embodiments, sequentially ordered instructions are decoded into micro-operations. Execution of one set of micro-operations is predicted to involve execution resources to perform memory access operations and inter-cluster communication, but not to perform branching operations. Execution of a second set of micro-operations is predicted to involve execution resources to perform branching operations but not to perform memory access operations. The micro-operations are partitioned for execution in accordance with these predictions, the first set of micro-operations to a first cluster of execution resources and the second set of micro-operations to a second cluster of execution resources. The first and second sets of micro-operations are executed out of sequential order and are retired to represent their sequential instruction ordering.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 5, 2007
    Inventors: Avinash Sodani, Alexandre Farcy, Stephan Jourdan, Per Hammarlund, Mark Davis
  • Publication number: 20070157006
    Abstract: Microarchitecture policies and structures partition execution resource clusters. In disclosed microarchitecture embodiments, micro-operations representing a sequential instruction ordering are partitioned into a two sets. To one set of micro-operations execution resources are allocated from a cluster of execution resources that can perform memory access operations but not branching operations. To the other set of micro-operations execution resources are allocated from a cluster of execution resources that can perform branching operations but not memory access operations. The first and second sets of micro-operations may be executed out of sequential order but are retired to represent their sequential instruction ordering.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 5, 2007
    Inventors: Stephan Jourdan, Avinash Sodani, Alexandre Farcy, Per Hammarlund, Sebastien Hily, Mark Davis
  • Publication number: 20070143575
    Abstract: In one embodiment, a method for flow optimization and prediction for vector streaming single instruction, multiple data (SIMD) extension (VSSE) memory operations is disclosed. The method comprises generating an optimized micro-operation (?op) flow for an instruction to operate on a vector if the instruction is predicted to be unmasked and unit-stride, the instruction to access elements in memory, and accessing via the optimized ?op flow two or more of the elements at the same time without determining masks of the two or more elements. Other embodiments are also described.
    Type: Application
    Filed: December 21, 2005
    Publication date: June 21, 2007
    Inventors: Stephen Jourdan, Per Hammarlund, Michael Fetterman, Michael Cornaby, Glenn Hinton, Avinash Sodani
  • Publication number: 20070079179
    Abstract: In one embodiment, the present invention includes a method for executing an operation on low order portions of first and second source operands using a first execution stack of a processor and executing the operation on high order portions of the first and second source operands using a second execution stack of the processor, where the operation in the second execution stack is staggered by one or more cycles from the operation in the first execution stack. Other embodiments are described and claimed.
    Type: Application
    Filed: September 30, 2005
    Publication date: April 5, 2007
    Inventors: Stephan Jourdan, Avinash Sodani, Michael Fetterman, Per Hammarlund, Ronak Singhal, Glenn Hinton
  • Publication number: 20070043932
    Abstract: Methods and apparatus to provide wakeup mechanisms for schedulers are described. In one embodiment, a scheduler broadcasts a uop scheduler identifier of a scheduled uop (or micro-operation) to one or more uops awaiting scheduling. The scheduler may further update one or more corresponding entries in a uop dependency matrix or a uop source identifiers and data buffer.
    Type: Application
    Filed: August 22, 2005
    Publication date: February 22, 2007
    Inventors: Rahul Kulkarni, Avinash Sodani
  • Publication number: 20070043934
    Abstract: Methods and apparatus to provide misprediction recovery through periodic checkpoint are described. In one embodiment, a renamer unit (e.g., within a processor core) recovers a register alias table (RAT) to a state immediately preceding a misprediction.
    Type: Application
    Filed: August 22, 2005
    Publication date: February 22, 2007
    Inventors: Avinash Sodani, James Hadley
  • Patent number: 7174428
    Abstract: Embodiments of the present invention provide a method, apparatus and system for memory renaming. In one embodiment, a decode unit may decode a load instruction. If the load instruction is predicted to be memory renamed, the load instruction may have a predicted store identifier associated with the load instruction. The decode unit may transform the load instruction that is predicted to be memory renamed into a data move instruction and a load check instruction. The data move instruction may read data from the cache based on the predicted store identifier and load check instruction may compare an identifier associated with an identified source store with the predicted store identifier. A retirement unit may retire the load instruction if the predicted store identifier matches an identifier associated with the identified source store.
    Type: Grant
    Filed: December 29, 2003
    Date of Patent: February 6, 2007
    Assignee: Intel Corporation
    Inventors: Sebastien Hily, Per H. Hammarlund, Avinash Sodani
  • Publication number: 20060230228
    Abstract: A system may include M cache entries, each of the M cache entries to transmit a signal indicating a read from or a write to the cache entry and comprising a data register and a memory address register, and K layers of decision cells, where K=log2M. The K layers M/2 decision cells of a first layer to indicate the other one of the respective two of the M cache entries and to transmit a hit signal in response to the signal, a second layer of M/4 decision cells to enable the other one of the respective two of the M/2 decision cells of the first layer and transmit a second hit signal in response to the signal, a (K-1)th layer of two decision cells to enable the other one of the respective two decision cells of the (K-2)th layer and transmit a third hit signal in response to the second hit signal, and a Kth layer of a root decision cell to enable the other one of the respective two decision cells of the (K-1)th layer in response to the third hit signal.
    Type: Application
    Filed: April 6, 2005
    Publication date: October 12, 2006
    Inventors: Samie Samaan, Avinash Sodani
  • Publication number: 20050149912
    Abstract: A system and method for optimizing a series of traces to be executed by a processing core is disclosed. The lines of a trace are sent to an optimizer each time they are sent to a processing core to be executed. Runtime information may be collected on a line of a trace each time that trace is executed by a processing core. The runtime information may be used by the optimizer to better optimize the micro-operations of the lines of the trace. The optimizer optimizes a trace each time the trace is executed to improve the efficiency of future iterations of the trace. Most of the optimizations result in a reduction of the number of ?ops within the trace. The optimizer may optimize two or more lines at a time in order to find more opportunities to remove ?ops and shorten the trace. The two lines may be alternately offset so that each line has the maximum allowed number of micro-operations.
    Type: Application
    Filed: December 29, 2003
    Publication date: July 7, 2005
    Inventors: Alexandre Farcy, Stephan Jourdan, Avinash Sodani, Per Hammarlund