Patents by Inventor Joel S. Emer

Joel S. Emer 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: 20120159073
    Abstract: An apparatus and method for improving cache performance in a computer system having a multi-level cache hierarchy. For example, one embodiment of a method comprises: selecting a first line in a cache at level N for potential eviction; querying a cache at level M in the hierarchy to determine whether the first cache line is resident in the cache at level M, wherein M<N; in response to receiving an indication that the first cache line is not resident at level M, then evicting the first cache line from the cache at level N; in response to receiving an indication that the first cache line is resident at level M, then retaining the first cache line and choosing a second cache line for potential eviction.
    Type: Application
    Filed: December 20, 2010
    Publication date: June 21, 2012
    Inventors: Aamer Jaleel, Simon C. Steely, JR., Eric R. Borch, Malini K. Bhandaru, Joel S. Emer
  • Publication number: 20120159077
    Abstract: A method and apparatus to reduce unnecessary write backs of cached data to a main memory and to optimize the usage of a cache memory tag directory. In one embodiment of the invention, the power consumption of a processor can be saved by eliminating write backs of cache memory lines that has information that has reached its end-of-life. In one embodiment of the invention, when a processing unit is required to clear one or more cache memory lines, it uses a write-zero command to clear the one or more cache memory lines. The processing unit does not perform a write operation to move or pass data values of zero to the one or more cache memory lines. By doing so, it reduces the power consumption of the processing unit.
    Type: Application
    Filed: December 21, 2010
    Publication date: June 21, 2012
    Inventors: SIMON C. STEELY, JR., Joel S. Emer, William C. Hasenplaugh
  • Publication number: 20100332810
    Abstract: A functional unit is described. The functional unit includes a reconfigurable logic circuitry and instruction context storage circuitry to store instruction context information generated from instructions executed by the reconfigurable logic circuitry within the reconfigurable functional unit. The instructions include speculatively executed instructions.
    Type: Application
    Filed: June 30, 2009
    Publication date: December 30, 2010
    Inventors: Tao Wang, Zhihong Yu, Joel S. Emer, Yuan Liu, Peng Li
  • Patent number: 7747932
    Abstract: Embodiments of apparatuses and methods for reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system are disclosed. In one embodiment, an apparatus includes two processor cores, a micro-checker, a global checker, and fault logic. The micro-checker is to detect whether a value from a structure in one core matches a value from the corresponding structure in the other core. The global checker is to detect lockstep failures between the two cores. The fault logic is to cause the two cores to be resynchronized if there is a lockstep error but the micro-checker has detected a mismatch.
    Type: Grant
    Filed: June 30, 2005
    Date of Patent: June 29, 2010
    Assignee: Intel Corporation
    Inventors: Paul B. Racunas, Joel S. Emer, Arijit Biswas, Shubhendu S. Mukherjee, Steven E. Raasch
  • Patent number: 7555703
    Abstract: A technique to reduce false error detection in microprocessors. A pi bit is propagated with an instruction through an instruction flow path. When a parity error is detected, the pi bit is set, instead of raising a machine check exception. Upon reaching a commit point, the processor can determine if the instruction was on a wrong path.
    Type: Grant
    Filed: June 17, 2004
    Date of Patent: June 30, 2009
    Assignee: Intel Corporation
    Inventors: Shubhendu S. Mukherjee, Joel S. Emer, Steven K. Reinhardt, Christopher T. Weaver, Michael J. Smith
  • Patent number: 7543221
    Abstract: A technique to reduce false error detection in microprocessors within a redundant multi-threaded computing environment. A pi bit is propagated with at least two instructions through an instruction flow path. Results of executing the instruction are compared to see if an error has occurred and if so, the pi bits are examined to determine which instruction contains the error.
    Type: Grant
    Filed: September 22, 2004
    Date of Patent: June 2, 2009
    Assignee: Intel Corporation
    Inventors: Shubhendu S. Mukherjee, Joel S. Emer, Steven K. Reinhardt, Christopher T. Weaver, Michael J. Smith
  • Patent number: 7475321
    Abstract: In one embodiment, the present invention includes a system, which may be a multiprocessor system having multiple nodes, each with a processor and a cache. The system may include a directory stored in a memory that includes entries having coherency information. At least one of the nodes may be configured to detect an error in an entry of the directory based on a coherency protocol and a state of a status indicator and presence vector of the entry, and without the storage of error correction or parity information in the entry. In some embodiments, the node may correct the error using state information obtained from other nodes.
    Type: Grant
    Filed: December 29, 2004
    Date of Patent: January 6, 2009
    Assignee: Intel Corporation
    Inventors: Sudhanva Gurumurthi, Arijit Biswas, Joel S. Emer, Shubhendu S. Mukherjee
  • Patent number: 7444497
    Abstract: A multithreaded architecture is disclosed for managing external memory updates for fault detection in redundant multithreading systems using speculative memory support. In particular, a method provides input replication of load values on a SRT processor by using speculative memory support to isolate redundant threads form external updates. This method thus avoids the need for dedicated structures to provide input replication.
    Type: Grant
    Filed: December 30, 2003
    Date of Patent: October 28, 2008
    Assignee: Intel Corporation
    Inventors: Steven K. Reinhardt, Shubhendu S. Mukherjee, Joel S. Emer, Christopher T. Weaver
  • Patent number: 7404070
    Abstract: A computer system comprises a processor that comprises a hardware branch predictor and software instructions executed by the processor. The software instructions comprise conditional branch instructions and separate static branch prediction instructions. The static branch prediction instructions comprise a plurality of groups of static branch prediction bits, each group being configurable to provide prediction information for a separate conditional branch instruction.
    Type: Grant
    Filed: November 28, 2000
    Date of Patent: July 22, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Harish G. Patil, Joel S. Emer, Stephen Felix
  • Patent number: 7386756
    Abstract: A technique to reduce false error detection in microprocessors by tracking instructions neutral to errors. As an instruction is decoded, an anti-pi bit is tagged to the decoded instruction. When a parity error is detected, an instruction queue first checks if the anti-pi bit is set. If the anti-pi bit is set, then instruction is neutral to errors, and the pi bit need not be set. Prefetch, branch predict hint and NOP are types of instructions that are neutral to errors.
    Type: Grant
    Filed: June 17, 2004
    Date of Patent: June 10, 2008
    Assignee: Intel Corporation
    Inventors: Joel S. Emer, Shubhendu S. Mukherjee, Steven K. Reinhardt, Christopher T. Weaver
  • Patent number: 7373548
    Abstract: Log-based hardware recovery. A checkpointed state of a system includes both architectural register values and memory. The checkpoint consists of a copy of the architectural register file values at the time the checkpoint is generated. An ordered log of non-deterministic events is maintained so that the responses can be repeated to simulate a complete checkpoint for error recovery purposes. When a processor detects an error, the processor reloads the state from the last checkpoint and repeats the non-deterministic events from the log.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: May 13, 2008
    Assignee: Intel Corporation
    Inventors: Steven K. Reinhardt, Shubhendu S. Mukherjee, Joel S. Emer
  • Patent number: 7353365
    Abstract: A method and apparatus for a checker instruction in a redundant multithreading environment is described. In one embodiment, when RMT requires, a processor may issue a checker instruction in both a leading thread and a trailing thread. The checker instruction may travel down individual pipelines for each thread independently until it reaches a buffer at the end of each pipeline. Then, prior to committing the checker instruction, the checker instruction looks for its counterpart and does a comparison of the instructions. If the checker instructions match, the checker instructions commit and retires otherwise an error is declared.
    Type: Grant
    Filed: September 29, 2004
    Date of Patent: April 1, 2008
    Assignee: Intel Corporation
    Inventors: Shubhendu S. Mukherjee, Joel S. Emer, Steven K. Reinhardt, Christopher T. Weaver
  • Patent number: 7343602
    Abstract: A processor capable of running multiple threads runs a program in one thread (called the “main” thread) and at least a portion of the same program in another thread (called the “pre-execution” thread). The program in the main thread includes instructions that cause the processor to start and stop pre-execution threads and direct the processor as to which part of the program is to be run through the pre-execution threads. Preferably, such instructions cause the pre-execution thread to run ahead of the main thread in program order. In that way, any cache miss conditions that are encountered by the pre-execution thread are resolved before the main thread requires that same data. Therefore, the main thread should encounter few or no cache miss conditions.
    Type: Grant
    Filed: December 18, 2001
    Date of Patent: March 11, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Chi-Keung Luk, Joel S. Emer
  • Patent number: 7308607
    Abstract: A multithreaded architecture having one or more checker circuits that operate on store operations that send data outside of a sphere of replication. Fault detection mechanisms used to check outputs from the sphere of replication are reused for checkpointing at the conclusion of an execution epoch.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: December 11, 2007
    Assignee: Intel Corporation
    Inventors: Steven K. Reinhardt, Shubhendu S. Mukherjee, Joel S. Emer
  • Patent number: 7243262
    Abstract: A processor executes corresponding instruction threads as a leading thread and a trailing thread. For a selected instruction, processor state corresponding to the execution of the instruction is saved in a history buffer. This is performed before writing a result from the selected instruction to a destination register. The result from executing the selected instruction in the leading thread is compared to the result from executing the selected instruction in the trailing thread. If the comparison indicates a fault, then restoring the processor state corresponding to a previous instruction. Data from the history buffer is used to perform the restoration.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: July 10, 2007
    Assignee: Intel Corporation
    Inventors: Shubhendu S. Mukherjee, Steven K. Reinhardt, Joel S. Emer
  • Patent number: 7003648
    Abstract: A multi-threaded processor provides for efficient flow-control from a pool of un-executed stores in an instruction queue to a store queue. The processor also includes similar capabilities with respect to load instructions. The processor includes logic organized into a plurality of thread processing units (“TPUs”) and allocation logic that monitors each TPUs demand for entries in the store queue. Demand is determined by subtracting an adjustable threshold value from the most recently assigned store identifier value. If the difference between the most recently assigned instruction identifier for a TPU and the TPU's threshold is non-zero, then it is determined that the TPU has demand for at least one entry in the store queue. The allocation logic includes arbitration logic that determines which one of a plurality of TPUs with store queue demand should be allocated a free entry in the store queue.
    Type: Grant
    Filed: March 28, 2002
    Date of Patent: February 21, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: George Z. Chrysos, Chuan-Hua Chang, Joel S. Emer, John H. Mylius, Peter Soderquist
  • Publication number: 20040073905
    Abstract: Execution of a program's instructions in a simultaneous multithreaded processor is halted while the program is waiting for one or more events to occur by first arming an event monitor upon an arm instruction, that is, identifying to the event monitor one or more events to be monitored, such as a modification to a value or state of an identified memory location or group of locations, and setting a watch flag to indicate enable the event monitor. Upon execution of a quiesce request instruction, the program quiesces if the watch flag is set, and a timer is started. Upon observation by the event monitor of an identified event, or upon expiration of the timer, the watch flag is cleared and execution of the program resumes.
    Type: Application
    Filed: October 7, 2003
    Publication date: April 15, 2004
    Inventors: Joel S. Emer, Rebecca L. Stamm, Bruce E. Edwards, Matthew H. Reilly, Craig B. Zilles, Tryggve Fossum, Christopher F. Joerg, James E. Hicks
  • Patent number: 6704861
    Abstract: A mechanism for executing computer instructions in parallel includes a compiler for generating and grouping instructions into a plurality of sets of instructions to be executed in parallel, each set having a unique identification. A computer system having a real state and a speculative state executes the sets in parallel, the computer system executing a particular set of instructions in the speculative state if the instructions of the particular set have dependencies which can not be resolved until the instructions are actually executed. The computer system generates speculative data while executing instructions in the speculative state. Logic circuits are provided to detect any exception conditions which occur while executing the particular set in the speculative state. If the particular set is subject to an exception condition, the instructions of the set are re-executed to resolve the exception condition, and to incorporate the speculative data in the real state of the computer system.
    Type: Grant
    Filed: November 19, 1996
    Date of Patent: March 9, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Francis X. McKeen, Michael C. Adler, Joel S. Emer, Robert P. Nix, David J. Sager, P. Geoffrey Lowney
  • Patent number: 6675192
    Abstract: Execution of a program's instructions in a simultaneous multithreaded processor is halted while the program is waiting for one or more events to occur by first arming an event monitor upon an arm instruction, that is, identifying to the event monitor one or more events to be monitored, such as a modification to a value or state of an identified memory location or group of locations, and setting a watch flag to indicate enable the event monitor. Upon execution of a quiesce request instruction, the program quiesces if the watch flag is set, and a timer is started. Upon observation by the event monitor of an identified event, or upon expiration of the timer, the watch flag is cleared and execution of the program resumes.
    Type: Grant
    Filed: November 11, 2002
    Date of Patent: January 6, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Joel S. Emer, Rebecca L. Stamm, Bruce E. Edwards, Matthew H. Reilly, Craig B. Zilles, Tryggve Fossum, Christopher F. Joerg, James E. Hicks, Jr.
  • Publication number: 20030188139
    Abstract: A multi-threaded processor provides for efficient flow-control from a pool of un-executed stores in an instruction queue to a store queue. The processor also includes similar capabilities with respect to load instructions. The processor includes logic organized into a plurality of thread processing units (“TPUs”) and allocation logic that monitors each TPUs demand for entries in the store queue. Demand is determined by subtracting an adjustable threshold value from the most recently assigned store identifier value. If the difference between the most recently assigned instruction identifier for a TPU and the TPU's threshold is non-zero, then it is determined that the TPU has demand for at least one entry in the store queue. The allocation logic includes arbitration logic that determines which one of a plurality of TPUs with store queue demand should be allocated a free entry in the store queue.
    Type: Application
    Filed: March 28, 2002
    Publication date: October 2, 2003
    Applicant: Compaq Information Technologies Group, L.P.
    Inventors: George Z. Chrysos, Chuan-Hua Chang, Joel S. Emer, John H. Mylius, Peter Soderquist