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).
-
Patent number: 8484434Abstract: Embodiments of the present invention provide a system that generates an index for a cache memory. The system starts by receiving a request to access the cache memory, wherein the request includes address information. The system then obtains non-address information associated with the request. Next, the system generates the index using the address information and the non-address information. The system then uses the index to fulfill access the cache memory.Type: GrantFiled: February 22, 2012Date of Patent: July 9, 2013Assignee: Oracle America, Inc.Inventors: Paul Caprioli, Martin Karlsson, Shailender Chaudhry
-
Patent number: 8447931Abstract: One embodiment of the present invention provides a processor that supports multiple-issue execution. This processor includes a register file, which contains an array of memory cells, wherein the memory cells contain bits for architectural registers of the processor. The register file also includes multiple read ports and multiple write ports to support multiple-issue execution. During operation, if multiple read ports simultaneously read from a given register, the register file is configured to: read each bit of the given register out of the array of memory cells through a single bitline associated with the bit; and to use a driver located outside of the array of memory cells to drive the bit to the multiple read ports. In this way, each memory cell only has to drive a single bitline (instead of multiple bitlines) during a multiple-port read operation, thereby allowing memory cells to use smaller and more power-efficient drivers for read operations.Type: GrantFiled: July 1, 2005Date of Patent: May 21, 2013Assignee: Oracle America, Inc.Inventors: Shailender Chaudhry, Paul Caprioli, Marc Tremblay
-
Patent number: 8364900Abstract: Embodiments of the present invention provide a system that replaces an entry in a least-recently-used way in a skewed-associative cache. The system starts by receiving a cache line address. The system then generates two or more indices using the cache line address. Next, the system generates two or more intermediate indices using the two or more indices. The system then uses at least one of the two or more indices or the two or more intermediate indices to perform a lookup in one or more lookup tables, wherein the lookup returns a value which identifies a least-recently-used way. Next, the system replaces the entry in the least-recently-used way.Type: GrantFiled: February 12, 2008Date of Patent: January 29, 2013Assignee: Oracle America, Inc.Inventors: Paul Caprioli, Sherman H. Yip, Shailender Chaudhry
-
Publication number: 20120331314Abstract: A processor includes a device providing a throttling power output signal. The throttling power output signal is used to determine when to logically throttle the power consumed by the processor. At least one core in the processor includes a pipeline having a decode pipe; and a logical power throttling unit coupled to the device to receive the output signal, and coupled to the decode pipe. Following the logical power throttling unit receiving the power throttling output signal satisfying a predetermined criterion, the logical power throttling unit causes the decode pipe to reduce an average number of instructions decoded per processor cycle without physically changing the processor cycle or any processor supply voltages.Type: ApplicationFiled: June 21, 2012Publication date: December 27, 2012Applicant: ORACLE AMERICA INC.Inventors: Shailender Chaudhry, Quinn A. Jacobson, Marc Tremblay
-
Patent number: 8341357Abstract: One embodiment provides a system that pre-fetches into a sibling cache. During operation, a first thread executes in a first processor core associated with a first cache, while a second thread associated with the first thread simultaneously executes in a second processor core associated with a second cache. During execution, the second thread encounters an instruction that triggers a request to a lower-level cache which is shared by the first cache and the second cache. The system responds to this request by directing a load fill which returns from the lower-level cache in response to the request to the first cache, thereby reducing cache misses for the first thread.Type: GrantFiled: March 16, 2010Date of Patent: December 25, 2012Assignee: Oracle America, Inc.Inventors: Martin R. Karlsson, Shailender Chaudhry, Robert E. Cypher
-
Patent number: 8327188Abstract: The described embodiments provide a processor (e.g., processor 102) for executing instructions. During execution, the processor starts by transactionally executing instructions from a protected section of program code. The processor then encounters a transactional failure condition while transactionally executing the instructions from the protected section of program code. In response to encountering the transactional failure condition, the processor enters a transactional-scout mode and speculatively executes subsequent instructions in the transactional-scout mode.Type: GrantFiled: November 13, 2009Date of Patent: December 4, 2012Assignee: Oracle America, Inc.Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry
-
Patent number: 8219831Abstract: A processor includes a device providing a throttling power output signal. The throttling power output signal is used to determine when to logically throttle the power consumed by the processor. At least one core in the processor includes a pipeline having a decode pipe; and a logical power throttling unit coupled to the device to receive the output signal, and coupled to the decode pipe. Following the logical power throttling unit receiving the power throttling output signal satisfying a predetermined criterion, the logical power throttling unit causes the decode pipe to reduce an average number of instructions decoded per processor cycle without physically changing the processor cycle or any processor supply voltages.Type: GrantFiled: January 28, 2009Date of Patent: July 10, 2012Assignee: Oracle America, Inc.Inventors: Shailender Chaudhry, Quinn A. Jacobson, Marc Tremblay
-
Publication number: 20120166756Abstract: Embodiments of the present invention provide a system that generates an index for a cache memory. The system starts by receiving a request to access the cache memory, wherein the request includes address information. The system then obtains non-address information associated with the request. Next, the system generates the index using the address information and the non-address information. The system then uses the index to fulfill access the cache memory.Type: ApplicationFiled: February 22, 2012Publication date: June 28, 2012Applicant: Oracle International CorporationInventors: Paul Caprioli, Martin Karlsson, Shailender Chaudhry
-
Publication number: 20120089819Abstract: The described embodiments include a processor that determines instructions that can be issued based on unresolved data dependencies. In an issue unit in the processor, the processor keeps a record of each instruction that is directly or indirectly dependent on a base instruction. Upon determining that the base instruction has been deferred, the processor monitors instructions that are being issued from an issue queue to an execution unit for execution. Upon determining that an instruction from the record has reached a head of the issue queue, the processor immediately issues the instruction from the issue queue.Type: ApplicationFiled: October 6, 2010Publication date: April 12, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Shailender Chaudhry, Richard Thuy Van, Robert E. Cypher, Debasish Chandra
-
Patent number: 8151084Abstract: Embodiments of the present invention provide a system that generates an index for a cache memory. The system starts by receiving a request to access the cache memory, wherein the request includes address information. The system then obtains non-address information associated with the request. Next, the system generates the index using the address information and the non-address information. The system then uses the index to fulfill access the cache memory.Type: GrantFiled: January 23, 2008Date of Patent: April 3, 2012Assignee: Oracle America, Inc.Inventors: Paul Caprioli, Martin Karlsson, Shailender Chaudhry
-
Publication number: 20110276791Abstract: The described embodiments provide a system for executing instructions in a processor. While executing instructions in an execute-ahead mode, the processor encounters a store instruction for which a destination address is unknown. The processor then defers the store instruction. Upon encountering a load instruction while the store instruction with the unknown destination address is deferred, the processor determines if the load instruction is to continue executing. If not, the processor defers the load instruction. Otherwise, the processor continues executing the load instruction.Type: ApplicationFiled: May 4, 2010Publication date: November 10, 2011Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Shailender Chaudhry, Martin R. Karlsson, Gideon N. Levinsky
-
Publication number: 20110264862Abstract: Techniques are disclosed relating to reducing the latency of restarting a pipeline in a processor that implements scouting. In one embodiment, the processor may reduce pipeline restart latency using two instruction fetch units that are configured to fetch and re-fetch instructions in parallel with one another. In some embodiments, the processor may reduce pipeline restart latency by initiating re-fetching instructions in response to determining that a commit operation is to be attempted with respect to one or more deferred instructions. In other embodiments, the processor may reduce pipeline restart latency by initiating re-fetching instructions in response to receiving an indication that a request for a set of data has been received by a cache, where the indication is sent by the cache before determining whether the data is present in the cache or not.Type: ApplicationFiled: April 27, 2010Publication date: October 27, 2011Inventors: Martin Karlsson, Sherman H. Yip, Shailender Chaudhry
-
Publication number: 20110264898Abstract: The embodiments described in the instant application provide a system for generating checkpoints. In the described embodiments, while speculatively executing instructions with one or more checkpoints in use, upon detecting an occurrence of a predetermined operating condition or encountering a predetermined type of instruction, the system is configured to determine whether an additional checkpoint is to be generated by computing a factor based on one or more operating conditions of the processor. When the factor is greater than a predetermined value, the processor is configured to generate the additional checkpoint.Type: ApplicationFiled: April 22, 2010Publication date: October 27, 2011Applicant: Oracle International CorporationInventors: Shailender Chaudhry, Martin R. Karlsson, Sherman H. Yip
-
Publication number: 20110231612Abstract: One embodiment provides a system that pre-fetches into a sibling cache. During operation, a first thread executes in a first processor core associated with a first cache, while a second thread associated with the first thread simultaneously executes in a second processor core associated with a second cache. During execution, the second thread encounters an instruction that triggers a request to a lower-level cache which is shared by the first cache and the second cache. The system responds to this request by directing a load fill which returns from the lower-level cache in response to the request to the first cache, thereby reducing cache misses for the first thread.Type: ApplicationFiled: March 16, 2010Publication date: September 22, 2011Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: Martin R. Karlsson, Shailender Chaudhry, Robert E. Cypher
-
Patent number: 8006073Abstract: A system and method for management of resource allocation of threads for efficient execution of instructions. Prior to dispatching decoded instructions of a first thread from the instruction fetch unit to a buffer within a scheduler, logic within the instruction fetch unit may determine the buffer is already full of dispatched instructions. However, the logic may also determine that a buffer for a second thread within the core or micro core is available. The second buffer may receive and issue decoded instructions for the first thread until the buffer is becomes unavailable. While the second buffer receives and issues instructions for the first thread, the throughput of the system for the first thread may increase due to a reduction in wait cycles.Type: GrantFiled: September 28, 2007Date of Patent: August 23, 2011Assignee: Oracle America, Inc.Inventors: Abid Ali, Shailender Chaudhry
-
Publication number: 20110179254Abstract: The described embodiments relate to a processor that speculatively executes instructions. During operation, the processor often executes instructions in a speculative-execution mode. Upon detecting an impending pipe-clearing event while executing instructions in the speculative-execution mode, the processor stalls an instruction fetch unit to prevent the instruction fetch unit from fetching instructions. In some embodiments, the processor stalls the instruction fetch unit until a condition that originally caused the processor to operate in the speculative-execution mode is resolved. In alternative embodiments, the processor maintains the stall of the instruction fetch unit until the pipe-clearing event has been completed (i.e., has been handled in the processor).Type: ApplicationFiled: January 15, 2010Publication date: July 21, 2011Applicant: SUN MICROSYSTEMS, INC.Inventors: Sherman H. Yip, Martin R. Karlsson, Shailender Chaudhry
-
Publication number: 20110179258Abstract: The described embodiments provide a system for executing instructions in a processor. In the described embodiments, upon detecting a return of input data for a deferred instruction while executing instructions in an execute-ahead mode, the processor determines whether a replay bit is set in a corresponding entry for the returned input data in a miss buffer. If the replay bit is set, the processor transitions to a deferred-execution mode to execute deferred instructions. Otherwise, the processor continues to execute instructions in the execute-ahead mode.Type: ApplicationFiled: January 15, 2010Publication date: July 21, 2011Applicant: SUN MICROSYSTEMS, INC.Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry
-
Patent number: 7979640Abstract: Embodiments of the present invention provide a system that handles way mispredictions in a multi-way cache. The system starts by receiving requests to access cache lines in the multi-way cache. For each request, the system makes a prediction of a way in which the cache line resides based on a corresponding entry in the way prediction table. The system then checks for the presence of the cache line in the predicted way. Upon determining that the cache line is not present in the predicted way, but is present in a different way, and hence the way was mispredicted, the system increments a corresponding record in a conflict detection table. Upon detecting that a record in the conflict detection table indicates that a number of mispredictions equals a predetermined value, the system copies the corresponding cache line from the way where the cache line actually resides into the predicted way.Type: GrantFiled: July 28, 2008Date of Patent: July 12, 2011Assignee: Oracle America, Inc.Inventors: Shailender Chaudhry, Robert E. Cypher, Martin Karlsson
-
Maintaining cache coherence using load-mark metadata to deny invalidation of load-marked cache lines
Patent number: 7949831Abstract: Embodiments of the present invention provide a system that maintains load-marks on cache lines. The system includes: (1) a cache which accommodates a set of cache lines, wherein each cache line includes metadata for load-marking the cache line, and (2) a local cache controller for the cache. Upon determining that a remote cache controller has made a request for a cache line that would cause the local cache controller to invalidate a copy of the cache line in the cache, the local cache controller determines if there is a load-mark in the metadata for the copy of the cache line. If not, the local cache controller invalidates the copy of the cache line. Otherwise, the local cache controller signals a denial of the invalidation of the cache line and retains the copy of the cache line and the load-mark in the metadata for the copy of the cache line.Type: GrantFiled: November 2, 2007Date of Patent: May 24, 2011Assignee: Oracle America, Inc.Inventors: Robert E. Cypher, Shailender Chaudhry -
Publication number: 20110119528Abstract: The described embodiments provide a processor (e.g., processor 102) for executing instructions. During execution, the processor starts by transactionally executing instructions from a protected section of program code. The processor then encounters a transactional failure condition while transactionally executing the instructions from the protected section of program code. In response to encountering the transactional failure condition, the processor enters a transactional-scout mode and speculatively executes subsequent instructions in the transactional-scout mode.Type: ApplicationFiled: November 13, 2009Publication date: May 19, 2011Applicant: SUN MICROSYSTEMS, INC.Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry