Patents by Inventor Robert Hinton

Robert Hinton 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: 9146745
    Abstract: Methods and apparatus for partitioning a microprocessor pipeline to support pipelined branch prediction and instruction fetching of multiple execution threads. A thread selection stage selects a thread from a plurality of execution threads. In one embodiment, storage in a branch prediction output queue is pre-allocated to a portion of the thread in one branch prediction stage in order to prevent stalling of subsequent stages in the branch prediction pipeline. In another embodiment, an instruction fetch stage fetches instructions at a fetch address corresponding to a portion of the selected thread. Another instruction fetch stage stores the instruction data in an instruction fetch output queue if enough storage is available. Otherwise, instruction fetch stages corresponding to the selected thread are invalidated and refetched to avoid stalling preceding stages in the instruction fetch pipeline, which may be fetching instructions of another thread.
    Type: Grant
    Filed: June 29, 2006
    Date of Patent: September 29, 2015
    Assignee: Intel Corporation
    Inventors: Stephan Jourdan, Robert Hinton
  • Patent number: 7454596
    Abstract: Methods and apparatus for partitioning a microprocessor pipeline to support pipelined branch prediction and instruction fetching of multiple execution threads. A thread selection stage selects a thread from a plurality of execution threads. In one embodiment, storage in a branch prediction output queue is pre-allocated to a portion of the thread in one branch prediction stage in order to prevent stalling of subsequent stages in the branch prediction pipeline. In another embodiment, an instruction fetch stage fetches instructions at a fetch address corresponding to a portion of the selected thread. Another instruction fetch stage stores the instruction data in an instruction fetch output queue if enough storage is available. Otherwise, instruction fetch stages corresponding to the selected thread are invalidated and refetched to avoid stalling preceding stages in the instruction fetch pipeline, which may be fetching instructions of another thread.
    Type: Grant
    Filed: June 29, 2006
    Date of Patent: November 18, 2008
    Assignee: Intel Corporation
    Inventors: Stephan Jourdan, Robert Hinton
  • Publication number: 20080072024
    Abstract: Methods and apparatus to perform efficient branch prediction operations are described. In one embodiment, branch prediction may be performed by utilizing a combination of a bimodal predictor, a plurality of global predictors, and a loop predictor. Other embodiments are also described.
    Type: Application
    Filed: September 14, 2006
    Publication date: March 20, 2008
    Inventors: Mark C. Davis, Robert Hinton, Boyd Phelps
  • Publication number: 20080005534
    Abstract: Methods and apparatus for partitioning a microprocessor pipeline to support pipelined branch prediction and instruction fetching of multiple execution threads. A thread selection stage selects a thread from a plurality of execution threads. In one embodiment, storage in a branch prediction output queue is pre-allocated to a portion of the thread in one branch prediction stage in order to prevent stalling of subsequent stages in the branch prediction pipeline. In another embodiment, an instruction fetch stage fetches instructions at a fetch address corresponding to a portion of the selected thread. Another instruction fetch stage stores the instruction data in an instruction fetch output queue if enough storage is available. Otherwise, instruction fetch stages corresponding to the selected thread are invalidated and refetched to avoid stalling preceding stages in the instruction fetch pipeline, which may be fetching instructions of another thread.
    Type: Application
    Filed: June 29, 2006
    Publication date: January 3, 2008
    Inventors: Stephan Jourdan, Robert Hinton
  • Publication number: 20080005544
    Abstract: Methods and apparatus for partitioning a microprocessor pipeline to support pipelined branch prediction and instruction fetching of multiple execution threads. A thread selection stage selects a thread from a plurality of execution threads. In one embodiment, storage in a branch prediction output queue is pre-allocated to a portion of the thread in one branch prediction stage in order to prevent stalling of subsequent stages in the branch prediction pipeline. In another embodiment, an instruction fetch stage fetches instructions at a fetch address corresponding to a portion of the selected thread. Another instruction fetch stage stores the instruction data in an instruction fetch output queue if enough storage is available. Otherwise, instruction fetch stages corresponding to the selected thread are invalidated and refetched to avoid stalling preceding stages in the instruction fetch pipeline, which may be fetching instructions of another thread.
    Type: Application
    Filed: June 29, 2006
    Publication date: January 3, 2008
    Inventors: Stephan Jourdan, Robert Hinton
  • Publication number: 20050193278
    Abstract: Systems and methods of managing threads provide for supporting a plurality of logical threads with a plurality of simultaneous physical threads in which the number of logical threads may be greater than or less than the number of physical threads. In one approach, each of the plurality of logical threads is maintained in one of a wait state, an active state, a drain state, and a stall state. A state machine and hardware sequencer can be used to transition the logical threads between states based on triggering events and whether or not an interruptible point has been encountered in the logical threads. The logical threads are scheduled on the physical threads to meet, for example, priority, performance or fairness goals. It is also possible to specify the resources that are available to each logical thread in order to meet these and other, goals. In one example, a single logical thread can speculatively use more than one physical thread, pending a selection of which physical thread should be committed.
    Type: Application
    Filed: December 29, 2003
    Publication date: September 1, 2005
    Inventors: Per Hammarlund, Stephan Jourdan, Pierre Michaud, Alexandre Farcy, Morris Marden, Robert Hinton, Douglas Carmean
  • Publication number: 20050149696
    Abstract: Rather than steering one macroinstruction at a time to decode logic in a processor, multiple macroinstructions may be steered at any given time. In one embodiment, a pointer calculation unit generates a pointer that assists in determining a stream of one or more macroinstructions that may be steered to decode logic in the processor.
    Type: Application
    Filed: December 29, 2003
    Publication date: July 7, 2005
    Inventors: Robert Hinton, Stephan Jourdan, Alexandre Farcy