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: 8984264
    Abstract: 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: Grant
    Filed: January 15, 2010
    Date of Patent: March 17, 2015
    Assignee: Oracle America, Inc.
    Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry
  • Patent number: 8688963
    Abstract: 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: Grant
    Filed: April 22, 2010
    Date of Patent: April 1, 2014
    Assignee: Oracle International Corporation
    Inventors: Shailender Chaudhry, Martin R. Karlsson, Sherman H. Yip
  • Patent number: 8635428
    Abstract: 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: Grant
    Filed: December 9, 2009
    Date of Patent: January 21, 2014
    Assignee: Oracle America, Inc.
    Inventors: Martin R. Karlsson, Jing-Ming Chang
  • Patent number: 8601240
    Abstract: 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: Grant
    Filed: May 4, 2010
    Date of Patent: December 3, 2013
    Assignee: Oracle International Corporation
    Inventors: Shailender Chaudhry, Martin R. Karlsson, Gideon N. Levinsky
  • Patent number: 8341357
    Abstract: 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: Grant
    Filed: March 16, 2010
    Date of Patent: December 25, 2012
    Assignee: Oracle America, Inc.
    Inventors: Martin R. Karlsson, Shailender Chaudhry, Robert E. Cypher
  • Patent number: 8327188
    Abstract: 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: Grant
    Filed: November 13, 2009
    Date of Patent: December 4, 2012
    Assignee: Oracle America, Inc.
    Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry
  • Patent number: 8285926
    Abstract: 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: Grant
    Filed: May 3, 2010
    Date of Patent: October 9, 2012
    Assignee: Oracle America, Inc.
    Inventor: Martin R. Karlsson
  • Publication number: 20110276791
    Abstract: 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: Application
    Filed: May 4, 2010
    Publication date: November 10, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Shailender Chaudhry, Martin R. Karlsson, Gideon N. Levinsky
  • Publication number: 20110271057
    Abstract: 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: Application
    Filed: May 3, 2010
    Publication date: November 3, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Martin R. Karlsson
  • Publication number: 20110264898
    Abstract: 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: Application
    Filed: April 22, 2010
    Publication date: October 27, 2011
    Applicant: Oracle International Corporation
    Inventors: Shailender Chaudhry, Martin R. Karlsson, Sherman H. Yip
  • Publication number: 20110231612
    Abstract: 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: Application
    Filed: March 16, 2010
    Publication date: September 22, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Martin R. Karlsson, Shailender Chaudhry, Robert E. Cypher
  • Publication number: 20110179254
    Abstract: 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: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Sherman H. Yip, Martin R. Karlsson, Shailender Chaudhry
  • Publication number: 20110179258
    Abstract: 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: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry
  • Publication number: 20110138149
    Abstract: 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: Application
    Filed: December 9, 2009
    Publication date: June 9, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Martin R. Karlsson, Jian-Ming Chang
  • Publication number: 20110119528
    Abstract: 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: Application
    Filed: November 13, 2009
    Publication date: May 19, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Martin R. Karlsson, Sherman H. Yip, Shailender Chaudhry