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: 20030105944
    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: November 11, 2002
    Publication date: June 5, 2003
    Applicant: Hewlett-Packard Development Company
    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: 6493741
    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: October 1, 1999
    Date of Patent: December 10, 2002
    Assignee: Compaq Information Technologies Group, 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.
  • Patent number: 6470443
    Abstract: A multi-threaded processor comprising a pipeline including a number of stages processing instructions belonging to a plurality of threads. A buffer stores instructions from different ones of the threads. Count logic stores count information relating to each of the threads to indicate the number of instructions in each of the corresponding threads that have a particular attribute. A selection logic circuit has an output coupled to the buffer to determine which instruction is to be read from the buffer based on the count information stored by the count logic. The count information may, for example, provide information relating to a likelihood that one or more instructions belonging to each of the threads will be cancelled; relating to a count of unresolved branch instructions; or relating to a count of outstanding data cache misses. In operation, a thread may be selected for execution based on a selected attribute to enhance processing performance.
    Type: Grant
    Filed: March 14, 2000
    Date of Patent: October 22, 2002
    Assignee: Compaq Computer Corporation
    Inventors: Joel S. Emer, Rebecca Stamm, Trggve Fossum, Robert H. Halstead, Jr., George Z. Chrysos, Dean Tullsen, Susan Eggers, Henry M. Levy
  • Publication number: 20020055964
    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: Application
    Filed: December 18, 2001
    Publication date: May 9, 2002
    Inventors: Chi-Keung Luk, Joel S. Emer
  • Patent number: 6154828
    Abstract: A method and apparatus including means for storing an executable file which includes a group of bits which define functional operations and cycle bits associated with each functional operation and means for completing a variable number of the functional operations in parallel during a single execution cycle in accordance with a state of the associated cycle bit. The method and apparatus eliminates the need for complex data dependency checking hardware and allows a minimum amount of control logic to complete execution of executable files. The method and apparatus further minimizes the necessity of adding null operations (NOPs) to executable files which reduces the amount of storage space necessary to store the executable files and allows executable files to be used on multiple hardware implementations and for register values to be used for multiple purposes during single execution cycles.
    Type: Grant
    Filed: June 3, 1993
    Date of Patent: November 28, 2000
    Assignee: Compaq Computer Corporation
    Inventors: Joseph Dominic Macri, Francis X. McKeen, Joel S. Emer, William Robert Grundmann, Robert P. Nix, David Arthur James Webb, Jr.
  • Patent number: 6108770
    Abstract: A method of scheduling program instructions for execution in a computer processor comprises fetching and holding instructions from an instruction memory and executing the fetched instructions out of program order. When load/store order violations are detected, the effects of the load operation and its dependent instructions are erased and they are re-executed. The load is associated with all stores on whose data the load depends. This collection of stores is called a store set. On a subsequent issuance of the load, its execution is delayed until any store in the load's store set has issued. Two loads may share a store set, and separate store sets are merged when a load from one store set is found to depend on a store from another store set. A preferred embodiment employs two tables. The first is a store set ID table (SSIT) which is indexed by part of, or a hash of, an instruction PC.
    Type: Grant
    Filed: June 24, 1998
    Date of Patent: August 22, 2000
    Assignee: Digital Equipment Corporation
    Inventors: George Z. Chrysos, Joel S. Emer, Bruce E. Edwards, John H. Edmondson
  • Patent number: 6081887
    Abstract: A technique for predicting the result of a conditional branch instruction for use with a processor having instruction pipeline. A stored predictor is connected to the front end of the pipeline and is trained from a truth based predictor connected to the back end of the pipeline. The stored predictor is accessible in one instruction cycle, and therefore provides minimum predictor latency. Update latency is minimized by storing multiple predictions in the front end stored predictor which are indexed by an index counter. The multiple predictions, as provided by the back end, are indexed by the index counter to select a particular one as current prediction on a given instruction pipeline cycle. The front end stored predictor also passes along to the back end predictor, such as through the instruction pipeline, a position value used to generate the predictions. This further structure accommodates ghost branch instructions that turn out to be flushed out of the pipeline when it must be backed up.
    Type: Grant
    Filed: November 12, 1998
    Date of Patent: June 27, 2000
    Assignee: Compaq Computer Corporation
    Inventors: Simon C. Steely, Jr., Edward J. McLellan, Joel S. Emer
  • Patent number: 6073159
    Abstract: A technique is provided for selecting a preferred thread from a plurality of threads executing within a simultaneous multithreaded, out-of-order execution computer system, the preferred thread possessing those instructions which, while in flight within the pipeline of the computer system provide, in contrast to those instructions belonging to other threads, a more beneficial performance of the central processing unit of the computer system. To determine the preferred thread, a technique is provided to evaluate attributes of each thread which indicate whether the thread includes a number of instructions which are likely to be cancelled while in flight or whether a thread includes instructions which will remain in the instruction queue for a number of cycles, unable to execute, thus stalling the execution of the thread to which the instruction belongs.
    Type: Grant
    Filed: December 31, 1996
    Date of Patent: June 6, 2000
    Assignee: Compaq Computer Corporation
    Inventors: Joel S. Emer, Rebecca Stamm, Trggve Fossum, Robert H. Halstead, Jr., George Z. Chrysos, Dean Tullsen, Susan Eggers, Henry M. Levy
  • Patent number: 5933860
    Abstract: A computer system including an instruction cache (I-cache) having a plurality of banks for storing a subset of data from memory is shown to include a prediction mechanism for predicting which bank of the I-cache contains the required data. A prediction value, including a sequential prediction hint and a branch prediction hint, is associated with each instruction stored in the I-cache. The prediction value may either be stored with the I-cache data, or in a separate memory included before the I-cache. If the predicted value is incorrect, the predicted hint is `trained` to provide a higher degree of accuracy for repetitive instruction stream operation. Processor performance is additionally improved by providing a branch hint that allows for smoother transition between changing instruction streams.
    Type: Grant
    Filed: July 29, 1997
    Date of Patent: August 3, 1999
    Assignee: Digital Equipment Corporation
    Inventors: Joel S. Emer, Simon Steely, Edward J. McLellan
  • Patent number: 5428807
    Abstract: There is provided a mechanism for propagating exception conditions in a computer system when instructions are subject to exception conditions. The apparatus includes a set of data registers for storing data manipulated by the instructions of the computer system, and a set of state registers for storing speculative states of data manipulated by the instructions, there being one state register associated with each data register. Furthermore, the apparatus includes a logic circuit, coupled to the set of state registers, for propagating the states from a source one of the state registers to a destination one of the state registers, if data stored in an associated source one of the data registers are used as a source for an associated destination one of data registers, and if data stored in the source data register were manipulated by a particular instruction subject to an exception condition.
    Type: Grant
    Filed: June 17, 1993
    Date of Patent: June 27, 1995
    Assignee: Digital Equipment Corporation
    Inventors: Francis X. McKeen, Michael C. Adler, Joel S. Emer, Robert P. Nix, David J. Sager, P. Geoffrey Lowny
  • Patent number: 5420990
    Abstract: An apparatus for enforcing that selected instructions are executed in a correct order, comprising a first content addressable memory for storing load addresses of data read from the memory by the selected instructions. The first content addressable memory comparing the store addresses with the load addresses of data to be written to the memory. The first content addressable memory generating a first signal, if one of the load addresses is identical to a subsequently compared one of the store addresses. The apparatus further including a second content addressable memory for storing and comparing states of the data read and written by the selected instructions. The second content addressable memory generating a second signal, if one of the stored states is identical to one of said compared states. The stored states including a program counter to repeat the execution of the selected instructions upon detecting the first and second signals.
    Type: Grant
    Filed: June 17, 1993
    Date of Patent: May 30, 1995
    Assignee: Digital Equipment Corporation
    Inventors: Francis X. McKeen, Michael C. Adler, Joel S. Emer, Robert P. Nix, David J. Sager, P. Geoffrey Lowney
  • Patent number: 5421022
    Abstract: A compiler groups instructions into sets. The sets of instructions are related by data and control dependencies which are unresolvable by the compiler. Sets of instructions having unresolved dependencies are executed in a speculative state of the computer system under the assumption that an exception condition will not occur. However, if an exception condition does occur while executing a set of instructions in the speculative state, that exception condition is detected and the set of instructions is re-executed in a real state of the computer system to resolve the exception condition.
    Type: Grant
    Filed: June 17, 1993
    Date of Patent: May 30, 1995
    Assignee: Digital Equipment Corporation
    Inventors: Francis X. McKeen, Michael C. Adler, Joel S. Emer, Robert P. Nix, David J. Sager, P. Geoffrey Lowney
  • Patent number: 5285323
    Abstract: A hierarchical cache memory includes a high-speed primary cache memory and a lower speed secondary cache memory of greater storage capacity than the primary cache memory. To manage a huge number of data lines interconnecting the primary and secondary cache memories, the hierarchical cache memory is integrated on a plurality of integrated circuits which include all of the interconnecting data lines. Each integrated circuit includes a primary memory and a secondary memory for storing and retrieving data transferred over a first data input line and a first data output line that link the primary memory to a central processing unit. At any given time, a multi-bit word is addressed in the secondary memory, and a corresponding multi-bit word is addressed in the primary memory.
    Type: Grant
    Filed: May 13, 1993
    Date of Patent: February 8, 1994
    Assignee: Digital Equipment Corporation
    Inventors: Ricky C. Hetherington, Francis X. McKeen, Joseph D. Marci, Tryggve Fossum, Joel S. Emer