Patents by Inventor Martin R. Karlsson
Martin R. Karlsson 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: 8984264Abstract: 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: GrantFiled: January 15, 2010Date of Patent: March 17, 2015Assignee: Oracle America, Inc.Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry
-
Patent number: 8688963Abstract: 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: GrantFiled: April 22, 2010Date of Patent: April 1, 2014Assignee: Oracle International CorporationInventors: Shailender Chaudhry, Martin R. Karlsson, Sherman H. Yip
-
Patent number: 8635428Abstract: One embodiment provides a system that prevents duplicate entries in a non-blocking TLB that supports multiple page sizes and speculative execution. During operation, after a request for translation of a virtual address misses in the non-blocking TLB, the system receives a TLB fill. Next, the system determines a page size associated with the TLB fill, and uses this page size to determine a set of bits in the virtual address that identify the virtual page associated with the TLB fill. The system then compares this set of bits with the corresponding bits of other virtual addresses associated with pending translation requests. If the system detects that a second virtual address for another pending translation request is also satisfied by the TLB fill, the system invalidates the duplicate translation request associated with the second virtual address.Type: GrantFiled: December 9, 2009Date of Patent: January 21, 2014Assignee: Oracle America, Inc.Inventors: Martin R. Karlsson, Jing-Ming Chang
-
Patent number: 8601240Abstract: 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: GrantFiled: May 4, 2010Date of Patent: December 3, 2013Assignee: Oracle International CorporationInventors: Shailender Chaudhry, Martin R. Karlsson, Gideon N. Levinsky
-
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: 8285926Abstract: The disclosed embodiments provide a system that filters duplicate requests from an L1 cache for a cache line. During operation, the system receives at an L2 cache a first request and a second request for the same cache line, and stores identifying information for these requests. The system then performs a cache array look-up for the first request that, in the process of creating a load fill packet for the first request, loads the cache line into a fill buffer. After sending the load fill packet for the first request to the L1 cache, the system uses the cache line data still stored in the fill buffer and stored identifying information for the second fill request to send a subsequent load fill packet for the second request to the L1 cache without performing an additional cache array look-up.Type: GrantFiled: May 3, 2010Date of Patent: October 9, 2012Assignee: Oracle America, Inc.Inventor: Martin R. Karlsson
-
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: 20110271057Abstract: The disclosed embodiments provide a system that filters duplicate requests from an L1 cache for a cache line. During operation, the system receives at an L2 cache a first request and a second request for the same cache line, and stores identifying information for these requests. The system then performs a cache array look-up for the first request that, in the process of creating a load fill packet for the first request, loads the cache line into a fill buffer. After sending the load fill packet for the first request to the L1 cache, the system uses the cache line data still stored in the fill buffer and stored identifying information for the second fill request to send a subsequent load fill packet for the second request to the L1 cache without performing an additional cache array look-up.Type: ApplicationFiled: May 3, 2010Publication date: November 3, 2011Applicant: ORACLE INTERNATIONAL CORPORATIONInventor: Martin R. Karlsson
-
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
-
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
-
Publication number: 20110138149Abstract: One embodiment provides a system that prevents duplicate entries in a non-blocking TLB that supports multiple page sizes and speculative execution. During operation, after a request for translation of a virtual address misses in the non-blocking TLB, the system receives a TLB fill. Next, the system determines a page size associated with the TLB fill, and uses this page size to determine a set of bits in the virtual address that identify the virtual page associated with the TLB fill. The system then compares this set of bits with the corresponding bits of other virtual addresses associated with pending translation requests. If the system detects that a second virtual address for another pending translation request is also satisfied by the TLB fill, the system invalidates the duplicate translation request associated with the second virtual address.Type: ApplicationFiled: December 9, 2009Publication date: June 9, 2011Applicant: SUN MICROSYSTEMS, INC.Inventors: Martin R. Karlsson, Jian-Ming Chang
-
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