Patents by Inventor Shailender Chaudhry

Shailender Chaudhry 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: 20080104335
    Abstract: One embodiment of the present invention provides a system that facilitates load reordering through cacheline marking. During operation, the system receives a load operation to be executed. Next, the system determines whether a cacheline for the load has been load-marked by a thread which is performing the load. If so, the system performs the load. Otherwise, the system obtains the cacheline and subsequently attempts to load-mark the cacheline. If the cacheline is successfully load-marked, the system performs the load.
    Type: Application
    Filed: October 31, 2006
    Publication date: May 1, 2008
    Inventors: Robert E. Cypher, Shailender Chaudhry
  • Patent number: 7366880
    Abstract: One embodiment of the present invention provides a system that predicts a result produced by a section of code in order to support speculative program execution. The system begins by executing the section of code using a head thread in order to produce a result. Before the head thread produces the result, the system generates a predicted result to be used in place of the result. Next, the system allows a speculative thread to use the predicted result in speculatively executing subsequent code that follows the section of code. After the head thread finishes executing the section of code, the system determines if a difference between the predicted result and the result generated by the head thread has affected execution of the speculative thread. If so, the system executes the subsequent code again using the result generated by the head thread. If not, the system performs a join operation to merge state associated with the speculative thread with state associated with the head thread.
    Type: Grant
    Filed: January 25, 2006
    Date of Patent: April 29, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay
  • Publication number: 20080082738
    Abstract: One embodiment of the present invention provides a store queue that applies the stores to a memory subsystem in program order. This store queue includes a content-addressable memory (CAM), which holds pending stores and facilitates looking up stores based on addresses for the stores, wherein the CAM does not keep track of program order between stores to different addresses. The store queue also includes a program-order queue which keeps track of program order between the stores in the CAM and thereby facilitates applying the stores to the memory subsystem in program order. In a variation on this embodiment, the CAM is a priority CAM which holds separate copies of multiple stores with identical addresses, and when a lookup based on an address matches multiple stores, returns the youngest matching store.
    Type: Application
    Filed: September 29, 2006
    Publication date: April 3, 2008
    Inventors: Robert E. Cypher, Shailender Chaudhry
  • Patent number: 7353363
    Abstract: Mechanisms have been developed for providing great flexibility in processor instruction handling, sequencing and execution. In particular, it has been discovered that a configurable predecode mechanism can be employed to select, for respective instruction patterns, between fixed decode and programmable decode paths provided by a processor. In this way, a patchable and/or programmable decode mechanism can be efficiently provided. In some realizations, either (or both) predecode or (and) decode may be configured or reconfigured post-manufacture. In some realizations, either (or both) predecode or (and) decode may be configured at (or about) initialization. In some realizations, either (or both) predecode or (and) decode may be configured at run-time.
    Type: Grant
    Filed: March 28, 2006
    Date of Patent: April 1, 2008
    Assignee: Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Quinn A. Jacobson, Marc Tremblay
  • Publication number: 20080022082
    Abstract: One embodiment of the present invention supports execution of a start transactional execution (STE) instruction, which marks the beginning of a block of instructions to be executed transactionally. Upon encountering the STE instruction during execution of a program, the system commences transactional execution of the block of instructions following the STE instruction. Changes made during this transactional execution are not committed to the architectural state of the processor until the transactional execution successfully completes.
    Type: Application
    Filed: August 1, 2007
    Publication date: January 24, 2008
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Marc Tremblay, Shailender Chaudhry, Quinn Jacobson
  • Publication number: 20080005545
    Abstract: One embodiment of the present invention provides a system that predicts a jump target for a jump instruction. During operation, the system starts fetching the jump instruction while executing a process. Next, the system uses a program counter for the process along with process state information to look up the jump target for the jump instruction. Finally, the system uses the jump target returned by the lookup as a predicted jump target for the jump instruction.
    Type: Application
    Filed: June 30, 2006
    Publication date: January 3, 2008
    Inventors: Edmond H. Yip, Paul Caprioli, Shailender Chaudhry, Jiejun Lu
  • Publication number: 20070283353
    Abstract: One embodiment of the present invention provides a system that selectively monitors load instructions to support transactional execution of a process, wherein changes made during the transactional execution are not committed to the architectural state of a processor until the transactional execution successfully completes. Upon encountering a load instruction during transactional execution of a block of instructions, the system determines whether the load instruction is a monitored load instruction or an unmonitored load instruction. If the load instruction is a monitored load instruction, the system performs the load operation, and load-marks a cache line associated with the load instruction to facilitate subsequent detection of an interfering data access to the cache line from another process. If the load instruction is an unmonitored load instruction, the system performs the load operation without load-marking the cache line.
    Type: Application
    Filed: August 3, 2007
    Publication date: December 6, 2007
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Marc Tremblay, Quinn Jacobson, Shailender Chaudhry
  • Publication number: 20070283099
    Abstract: A plurality of processor cores on a chip is operated in a normal fashion in a debug and diagnostic mode of operation of the processor. A crossbar switch on the chip couples and decouples the plurality of processors to a plurality of banks in a level-two (L2) cache that is also on the chip. As data is passed from each of the processor cores through the crossbar switch to the L2 cache, the data in cached in a first plurality of banks of the L2 cache. The commands associated with the data and information concerning the status of the data in the level-one cache are logged in another plurality of banks of the L2 cache. This logged information can be readout and used in diagnosis and debugging of L1 and L2 cache problems.
    Type: Application
    Filed: March 12, 2007
    Publication date: December 6, 2007
    Inventors: Shailender Chaudhry, Sudheendra Hangal
  • Publication number: 20070271445
    Abstract: One embodiment of the present invention provides a system that selectively monitors store instructions to support transactional execution of a process, wherein changes made during the transactional execution are not committed to the architectural state of a processor until the transactional execution successfully completes. Upon encountering a store instruction during transactional execution of a block of instructions, the system determines whether the store instruction is a monitored store instruction or an unmonitored store instruction. If the store instruction is a monitored store instruction, the system performs the store operation, and store-marks a cache line associated with the store instruction to facilitate subsequent detection of an interfering data access to the cache line from another process. If the store instruction is an unmonitored store instruction, the system performs the store operation without store-marking the cache line.
    Type: Application
    Filed: August 2, 2007
    Publication date: November 22, 2007
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Marc Tremblay, Quinn Jacobson, Shailender Chaudhry
  • Patent number: 7293161
    Abstract: One embodiment of the present invention provides a system that facilitates deferring execution of instructions with unresolved data dependencies as they are issued for execution in program order. During a normal execution mode, the system issues instructions for execution in program order. Upon encountering an unresolved data dependency during execution of an instruction, the system generates a checkpoint that can subsequently be used to return execution of the program to the point of the instruction. Next, the system executes the instruction and subsequent instructions in an execute-ahead mode, wherein instructions that cannot be executed because of an unresolved data dependency are deferred, and wherein other non-deferred instructions are executed in program order. Upon encountering a store during the execute-ahead mode, the system determines if the store buffer is full. If so, the system prefetches a cache line for the store, and defers execution of the store.
    Type: Grant
    Filed: April 13, 2005
    Date of Patent: November 6, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Marc Tremblay
  • Patent number: 7293160
    Abstract: One embodiment of the present invention provides a system which facilitates eliminating a restart penalty when reissuing deferred instructions in a processor that supports speculative-execution. During a normal execution mode, the system issues instructions for execution in program order, wherein issuing the instructions involves decoding the instructions. Upon encountering an unresolved data dependency during execution of an instruction, the processor performs a checkpointing operation and executes subsequent instructions in an execute-ahead mode, wherein instructions that cannot be executed because of the unresolved data dependency are deferred, and wherein other non-deferred instructions are executed in program order. When an unresolved data dependency is resolved during execute-ahead mode, the processor begins to execute the deferred instructions in a deferred mode. In doing so, the processor initially issues deferred instructions, which have already been decoded, from a deferred queue.
    Type: Grant
    Filed: February 14, 2005
    Date of Patent: November 6, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Marc Tremblay
  • Publication number: 20070255907
    Abstract: In one embodiment, a processor comprises a coherence trap unit and a trap logic coupled to the coherence trap unit. The coherence trap unit is also coupled to receive data accessed in response to the processor executing a memory operation. The coherence trap unit is configured to detect that the data matches a designated value indicating that a coherence trap is to be initiated to coherently perform the memory operation. The trap logic is configured to trap to a designated software routine responsive to the coherence trap unit detecting the designated value. In some embodiments, a cache tag in a cache may track whether or not the corresponding cache line has the designated value, and the cache tag may be used to trigger a trap in response to an access to the corresponding cache line.
    Type: Application
    Filed: April 28, 2006
    Publication date: November 1, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Hakan Zeffer, Erik Hagersten, Anders Landin, Shailender Chaudhry, Paul Loewenstein, Robert Cypher, Zoran Radovic
  • Publication number: 20070240158
    Abstract: One embodiment of the present invention provides a system that synchronizes threads on a multi-threaded processor. The system starts by executing instructions from a multi-threaded program using a first thread and a second thread. When the first thread reaches a predetermined location in the multi-threaded program, the first thread executes a Start-Transactional-Execution (STE) instruction to commence transactional execution, wherein the STE instruction specifies a location to branch to if transactional execution fails. During the subsequent transactional execution, the first thread accesses a mailbox location in memory (which is also accessible by the second thread) and then executes instructions that cause the first thread to wait.
    Type: Application
    Filed: May 5, 2006
    Publication date: October 11, 2007
    Inventors: Shailender Chaudhry, Marc Tremblay, Paul Caprioli
  • Patent number: 7277989
    Abstract: One embodiment of the present invention provides a processor which selectively fetches cache lines for store instructions during speculative-execution. During normal execution, the processor issues instructions for execution in program order. Upon encountering an instruction which generates a launch condition, the processor performs a checkpoint and begins the execution of instructions in a speculative-execution mode. Upon encountering a store instruction during the speculative-execution mode, the processor checks an L1 data cache for a matching cache line and checks a store buffer for a store to a matching cache line. If a matching cache line is already present in the L1 data cache or if the store to a matching cache line is already present in the store buffer, the processor suppresses generation of the fetch for the cache line. Otherwise, the processor generates a fetch for the cache line.
    Type: Grant
    Filed: March 16, 2005
    Date of Patent: October 2, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay, Paul Caprioli
  • Publication number: 20070226472
    Abstract: One embodiment of the present invention provides a system that samples instructions on a processor that supports speculative-execution. The system starts by selecting an instruction, wherein selecting an instruction involves selecting an instruction that is received from an instruction fetch unit or a deferred queue, wherein the deferred queue holds deferred instructions which are deferred because of an unresolved data dependency.
    Type: Application
    Filed: April 17, 2006
    Publication date: September 27, 2007
    Inventors: Shailender Chaudhry, Paul Caprioli, Sherman Yip
  • Publication number: 20070226463
    Abstract: Mechanisms have been developed for providing great flexibility in processor instruction handling, sequencing and execution. In particular, it has been discovered that a configurable predecode mechanism can be employed to select, for respective instruction patterns, between fixed decode and programmable decode paths provided by a processor. In this way, a patchable and/or programmable decode mechanism can be efficiently provided. In some realizations, either (or both) predecode or (and) decode may be configured or reconfigured post-manufacture. In some realizations, either (or both) predecode or (and) decode may be configured at (or about) initialization. In some realizations, either (or both) predecode or (and) decode may be configured at run-time.
    Type: Application
    Filed: March 28, 2006
    Publication date: September 27, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Quinn Jacobson, Marc Tremblay
  • Publication number: 20070226467
    Abstract: A technique for operating a computing apparatus includes allocating a working register file entry corresponding to a register in a working register file when an instruction referencing the register proceeds through a particular stage of the computing apparatus. The technique maintains the working register file entry until at least a predetermined number of subsequent instructions have similarly proceeded through the particular stage.
    Type: Application
    Filed: June 22, 2006
    Publication date: September 27, 2007
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Shailender Chaudhry, Quinn A. Jacobson, Marc Tremblay
  • Publication number: 20070226425
    Abstract: A technique for reducing off-chip bandwidth requirements for a processor reads old data from a location in an on-chip store of a processor in preparation of writing new data to the location in the on-chip store. The technique determines whether new data blocks of the new data and associated old data blocks of the old data are different. The new data blocks are then written to the on-chip store. When updating an off-chip store, only the new data blocks that are different are written to the off-chip store. In this manner, off-chip bandwidth requirements for a processor may be reduced.
    Type: Application
    Filed: March 8, 2006
    Publication date: September 27, 2007
    Inventors: Paul Caprioli, Shailender Chaudhry
  • Publication number: 20070226464
    Abstract: Mechanisms have been developed for providing great flexibility in processor instruction handling, sequencing and execution. In particular, it has been discovered that a programmable pre-decode mechanism can be employed to alter the behavior of a processor. For example, pre-decode hints for sequencing, synchronization or speculation control may altered or mappings of ISA instructions to native instructions or operation sequences may be altered. Such techniques may be employed to adapt a processor implementation (in the field) to varying memory models, implementations or interfaces or to varying memory latencies or timing characteristics. Similarly, such techniques may be employed to adapt a processor implementation to correspond to an extended/adapted instruction set architecture. In some realizations, instruction pre-decode functionality may be adapted at processor run-time to handle or mitigate a timing, concurrency or speculation issue.
    Type: Application
    Filed: March 28, 2006
    Publication date: September 27, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Paul Caprioli, Quinn A. Jacobson, Marc Tremblay
  • Publication number: 20070226465
    Abstract: A technique for coordinating execution of instructions in a processor that allows instructions to execute out-of-order includes decoding a particular instruction that is defined in accordance with an instruction set of the processor. A helper sequence of instructions that corresponds to the particular instruction is then introduced into a stream of executable operations. The corresponding helper sequence includes a first artificial dependency instruction that codes a dependency on a register that is not actually employed as a register source or target for an operation performed by the particular instruction.
    Type: Application
    Filed: March 8, 2006
    Publication date: September 27, 2007
    Inventors: Shailender Chaudhry, Paul Caprioli, Sherman Yip