Patents by Inventor Quinn Jacobson

Quinn Jacobson 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: 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: 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
  • Publication number: 20070239940
    Abstract: A technique for adjusting a prefetching rate. More particularly, embodiments of the invention relate to a technique to adjust prefetching as a function of the usefulness of the prefetched data.
    Type: Application
    Filed: March 31, 2006
    Publication date: October 11, 2007
    Inventors: Kshitij Doshi, Quinn Jacobson, Anne Bracy, Hong Wang, Per Hammarlund
  • 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: 20070186056
    Abstract: A method and apparatus for accelerating transactional execution. Barriers associated with shared memory lines reference by memory accesses within a transaction are only invoked/executed the first time the shared memory lines are accessed within a transaction. Hardware support, such as a transaction field/transaction bits, are provided to determine if an access is the first access to a shared memory line during a pendancy of a transaction. Additionally, in an aggressive operational mode version numbers representing versions of elements stored in shared memory lines are not stored and validated upon commitment to save on validation cost. Moreover, even in a cautious mode, that stores version numbers to enable validation, validation costs may not be incurred, if eviction of accessed shared memory lines do not occur during execution of the transaction.
    Type: Application
    Filed: February 7, 2006
    Publication date: August 9, 2007
    Inventors: Bratin Saha, Ali-Reza Adl-Tabatabai, Quinn Jacobson
  • Publication number: 20070186055
    Abstract: A technique for using memory attributes to relay information to a program or other agent. More particularly, embodiments of the invention relate to using memory attribute bits to check various memory properties in an efficient manner.
    Type: Application
    Filed: February 7, 2006
    Publication date: August 9, 2007
    Inventors: Quinn Jacobson, Anne Bracy, Hong Wang, John Shen, Per Hammarlund, Matthew Merten, Suresh Srinivas, Kshitij Doshi, Gautham Chinya, Bratin Saha, Ali-Reza Adl-Tabatabai, Gad Sheaffer
  • Publication number: 20070162475
    Abstract: A method and apparatus for hardware-based dynamic escape detection in managed run-time environments are described. In one embodiment, the method includes the detection of a pointer update of a first object having a global scope. In one embodiment, a single instruction is issued to assert that a scope attribute associated with a target object of the pointer update identifies a global scope. The single instruction may return failure if the scope attribute that is associated with the second object identifies the scope of the second object as local. Verification may include the reading of an object descriptor for the second object to determine whether a scope attribute of the object descriptor indicates that the scope of the second object is local. Once verified, in one embodiment, the second object, and each object reachable from the second object, are converted into global objects. Other embodiments are described and claimed.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 12, 2007
    Inventors: Quinn Jacobson, Suresh Srinivas, Anne Bracy, Hong Wang
  • Publication number: 20070106888
    Abstract: A technique recovers return address stack (RAS) content and restores alignment of a RAS top-of-stack (TOS) pointer for occurrences of mispredictions due to speculative operation, out-of-order instruction processing, and exception handling. In at least one embodiment of the invention, an apparatus includes a speculative execution processor pipeline, a first structure for maintaining return addresses relative to instruction flow at a first stage of the pipeline, at least a second structure for maintaining return addresses relative to instruction flow at a second stage of the pipeline. The second stage of the pipeline is deeper in the pipeline than the first stage. The apparatus includes circuitry operable to reproduce at least return addresses from the second structure to the first structure.
    Type: Application
    Filed: February 28, 2006
    Publication date: May 10, 2007
    Inventors: Shailender Chaudhry, Quinn Jacobson, Paul Caprioli, Marc Tremblay
  • Publication number: 20070088916
    Abstract: A technique for thread synchronization and communication.
    Type: Application
    Filed: October 19, 2005
    Publication date: April 19, 2007
    Inventors: Quinn Jacobson, Hong Wang, John Shen, Per Hammarlund
  • Publication number: 20070006195
    Abstract: Explicit software control is used for data speculations. The explicit software control is applied at selected locations in a computer program to provide the benefit of data speculation while eliminating the need for hardware to perform data speculation. A computer-based method first determines, via explicit software control, whether data speculation for an item, a variable, a pointer, an address, etc., is needed. Upon determining that data speculation for the item is needed, the data speculation is performed under explicit software control. Conversely, if the explicit software control determines that data speculation is not needed, e.g., the value of the item typically obtained by execution of a long latency instruction, is available, an original code segment is executed using an actual value of the item.
    Type: Application
    Filed: March 16, 2005
    Publication date: January 4, 2007
    Inventors: Christof Braun, Quinn Jacobson, Shailender Chaudhry, Marc Tremblay
  • Publication number: 20060294326
    Abstract: A processor may include an address monitor table and an atomic update table to support speculative threading. The processor may also include one or more registers to maintain state associated with execution of speculative threads. The processor may support one or more of the following primitives: an instruction to write to a register of the state, an instruction to trigger the committing of buffered memory updates, an instruction to read the a status register of the state, and/or an instruction to clear one of the state bits associated with trap/exception/interrupt handling. Other embodiments are also described and claimed.
    Type: Application
    Filed: June 23, 2005
    Publication date: December 28, 2006
    Inventors: Quinn Jacobson, Hong Wang, John Shen, Gautham Chinya, Per Hammarlund, Xiang Zou, Bryant Bigbee, Shivnandan Kaushik
  • Publication number: 20060200632
    Abstract: One embodiment of the present invention provides a system that facilitates selectively unmarking load-marked cache lines during transactional program execution, wherein load-marked cache lines are monitored during transactional execution to detect interfering accesses from other threads. During operation, the system encounters a release instruction during transactional execution of a block of instructions. In response to the release instruction, the system modifies the state of cache lines, which are specially load-marked to indicate they can be released from monitoring, to account for the release instruction being encountered. In doing so, the system can potentially cause the specially load-marked cache lines to become unmarked. In a variation on this embodiment, upon encountering a commit-and-start-new-transaction instruction, the system modifies load-marked cache lines to account for the commit-and-start-new-transaction instruction being encountered.
    Type: Application
    Filed: April 6, 2006
    Publication date: September 7, 2006
    Inventors: Marc Tremblay, Quinn Jacobson, Shailender Chaudhry, Mark Moir, Maurice Herlihy
  • Publication number: 20060161760
    Abstract: The present invention provides a method and apparatus for increased efficiency for translation lookaside buffers by collapsing redundant translation table entries into a single translation table entry (TTE). In the present invention, each thread of a multithreaded processor is provided with multiple context registers. Each of these context registers is compared independently to the context of the TTE. If any of the contexts match (and the other match conditions are satisfied), then the translation is allowed to proceed. Two applications attempting to share one page but that still keep separate pages can then employ three total contexts. One context is for one application's private use; one of the contexts is for the other application's private use; and a third context is for the shared page. In one embodiment of the invention, two contexts are implemented per thread. However, the teachings of the present invention can be extended to a higher number of contexts per thread.
    Type: Application
    Filed: December 30, 2004
    Publication date: July 20, 2006
    Applicant: Sun Microsystems, Inc.
    Inventors: Paul Jordan, William Kucharski, Roman Zajcew, Ashley Saulsbury, Quinn Jacobson
  • Publication number: 20060136672
    Abstract: A plurality of processors on a chip is operated in lockstep. A crossbar switch on the chip couples and decouples the plurality of processors to a plurality of banks in a level-two (L2) cache. As data is stored in a first bank of the L2 cache, the old data at that location is passed through the crossbar switch to a second bank of the L2 cache that is functioning as a first-in-first-out memory (FIFO). Thus, new data is cached at a location in the first bank of the level-two cache, i.e., stored, and old data, from that location, is logged in the second bank of the level-two cache. The logged data in the second bank is used to restore the first bank to a known prior state when necessary.
    Type: Application
    Filed: June 2, 2005
    Publication date: June 22, 2006
    Inventors: Shailender Chaudhry, Quinn Jacobson, Ashley Saulsbury
  • Publication number: 20060101254
    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: December 6, 2005
    Publication date: May 11, 2006
    Inventors: Marc Tremblay, Shailender Chaudhry, Quinn Jacobson
  • Publication number: 20060064567
    Abstract: A system, which includes a processor that includes a plurality of cores, generates an address translation when there is a miss in a translation lookaside buffer (TLB). A hypervisor utilizes a translating load instruction that upon execution on the processor generates a data portion of a TLB entry. Execution of the translating load instruction utilizes information from a real-to-physical address translation table entry and information provided in the call to the translating load instruction to synthesize the data portion of a new virtual-to-physical translation table entry.
    Type: Application
    Filed: May 23, 2005
    Publication date: March 23, 2006
    Inventors: Quinn Jacobson, Shailender Chaudhry
  • Publication number: 20050262301
    Abstract: One embodiment of the present invention provides a system that facilitates delaying interfering memory accesses from other threads during transactional execution. During transactional execution of a block of instructions, the system receives a request from another thread (or processor) to perform a memory access involving a cache line. If performing the memory access on the cache line will interfere with the transactional execution and if it is possible to delay the memory access, the system delays the memory access and stores copy-back information for the cache line to enable the cache line to be copied back to the requesting thread. At a later time, when the memory access will no longer interfere with the transactional execution, the system performs the memory access and copies the cache line back to the requesting thread.
    Type: Application
    Filed: July 25, 2005
    Publication date: November 24, 2005
    Inventors: Quinn Jacobson, Marc Tremblay, Shailender Chaudhry
  • Publication number: 20050223194
    Abstract: A user is provided with means to sample memory hierarchy via software. This allows a user to enhance memory-level parallelism via software. A status of information needed for execution of a second computer program instruction is read in response to execution of a first computer program instruction. Execution continues with execution of the second computer program instruction upon the status being a first status. Alternatively, a third computer program instruction is executed upon the status being a second status different from the first status. Thus, execution of the first computer program instruction allows control of the memory hierarchy, which in turn give the user control of the memory hierarchy.
    Type: Application
    Filed: March 16, 2005
    Publication date: October 6, 2005
    Inventors: Marc Tremblay, Shailender Chaudhry, Quinn Jacobson
  • Publication number: 20050223385
    Abstract: Software instructions in a single thread code sequence with a helper subthread are executed on a processor of a computer system. The execution causes the computer system, for example, to (i) determine whether information associated with a long latency instruction is available, and when the data is unavailable, to (ii) snapshot a state of the computer system and maintain a capability to roll back to that snapshot state, (iii) execute the helper instruction in the helper subthread, and (iv) roll back to the snapshot state upon completion of execution of the helper instructions in the helper subthread and continue execution. The helper subthread, for example prefetches data while waiting for the long latency instruction to complete.
    Type: Application
    Filed: March 16, 2005
    Publication date: October 6, 2005
    Inventors: Christof Braun, Quinn Jacobson, Shailender Chaudhry, Marc Tremblay
  • Publication number: 20050223201
    Abstract: One embodiment of the present invention provides a processor that facilitates rapid progress while speculatively executing instructions in scout mode. During normal operation, the processor executes instructions in a normal execution mode. Upon encountering a stall condition, the processor executes the instructions in a scout mode, wherein the instructions are speculatively executed to prefetch future loads, but wherein results are not committed to the architectural state of the processor. While speculatively executing the instructions in scout mode, the processor maintains dependency information for each register indicating whether or not a value in the register depends on an unresolved data-dependency. If an instruction to be executed in scout mode depends on an unresolved data dependency, the processor executes the instruction as a NOOP so that the instruction executes rapidly without tying up computational resources.
    Type: Application
    Filed: March 30, 2005
    Publication date: October 6, 2005
    Inventors: Marc Tremblay, Shailender Chaudhry, Quinn Jacobson