Patents by Inventor Richard Doing

Richard Doing 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: 20190294443
    Abstract: Providing early pipeline optimization of conditional instructions in processor-based systems is disclosed. In one aspect, an instruction pipeline of a processor-based system detects a mispredicted branch (i.e., following a misprediction of a condition associated with a speculatively executed conditional branch instruction), and records a current state of one or more condition flags as a condition flags snapshot. After a pipeline flush is initiated and a corrected fetch path is restarted, an instruction decode stage of the instruction pipeline uses the condition flags snapshot to apply optimizations to conditional instructions detected within the corrected fetch path. According to some aspects, the condition flags snapshot is subsequently invalidated upon encountering a condition-flag-writing instruction within the corrected fetch path.
    Type: Application
    Filed: March 20, 2018
    Publication date: September 26, 2019
    Inventors: Sandeep Suresh Navada, Michael Scott McIlvaine, Rodney Wayne Smith, Robert Douglas Clancy, Yusuf Cagatay Tekmen, Niket Choudhary, Daren Eugene Streett, Richard Doing, Ankita Upreti
  • Publication number: 20070118837
    Abstract: A method, and apparatus are provided for preventing livelocks in processor selection of load requests in a multiprocessor (MP) system. On random occasions a selection mechanism is changed for first holding up all requests and then a random selection is made. Then a round robin selection mechanism is used for further requests. A livelock-preventing selection mechanism includes a pair of linear feedback shift registers (LFSRs), each LFSR for generating pseudo random values.
    Type: Application
    Filed: November 21, 2005
    Publication date: May 24, 2007
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Richard Doing, John Patty, Steven Testa, Thuong Truong
  • Publication number: 20060236080
    Abstract: A method and processor for reducing the fetch time of target instructions of a predicted taken branch instruction. Each entry in a buffer, referred to herein as a “branch target buffer”, may store an address of a branch instruction predicted taken and the instructions beginning at the target address of the branch instruction predicted taken. When an instruction is fetched from the instruction cache, a particular entry in the branch target buffer is indexed using particular bits of the fetched instruction. The address of the branch instruction in the indexed entry is compared with the address of the instruction fetched from the instruction cache. If there is a match, then the instructions beginning at the target address of that branch instruction are dispatched directly behind the branch instruction. In this manner, the fetch time of target instructions of a predicted taken branch instruction is reduced.
    Type: Application
    Filed: April 19, 2005
    Publication date: October 19, 2006
    Inventors: Richard Doing, Brett Olsson, Kenichi Tsuchiya
  • Publication number: 20060155961
    Abstract: Method and apparatus for reformatting instructions in a pipelined processor. An instruction register holds a plurality of instructions received from a cache memory external to the processor. A predecoder predecodes each of the instructions and determines from an instruction operation field where the instruction fields should be placed. A multiplexer reformats architecturally aligned instructions into hardware implementation aligned instructions prior to storing into L1 cache, so that the instructions are ready for dispatch to the pipeline execution units.
    Type: Application
    Filed: January 6, 2005
    Publication date: July 13, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: James Dieffenderfer, Richard Doing, Sanjay Patel, Steven Testa, Kenichi Tsuchiya
  • Publication number: 20060095751
    Abstract: A method and system for reducing overhead on a loop of a plurality of instructions is disclosed. The loop is performed a particular number of times. The method and system include a mask register and addition logic. The mask register provides a carry mask having a first value for the loop being performed at least the particular number of times minus one time and a second value for at least a last instruction of the loop being performed a last time. The addition logic is coupled with the mask register and determines which of the plurality of instructions is to be executed. The carry mask and a current instruction of the plurality of instructions correspond to inputs of the addition logic. A resultant of the addition logic corresponds to a next instruction of the plurality of instructions unless the current instruction is the last instruction.
    Type: Application
    Filed: September 20, 2004
    Publication date: May 4, 2006
    Inventors: Anthony Bybell, Richard Doing, David Dukro
  • Publication number: 20060036811
    Abstract: An LRU array and method for tracking the accessing of lines of an associative cache. The most recently accessed lines of the cache are identified in the table, and cache lines can be blocked from being replaced. The LRU array contains a data array having a row of data representing each line of the associative cache, having a common address portion. A first set of data for the cache line identifies the relative age of the cache line for each way with respect to every other way. A second set of data identifies whether a line of one of the ways is not to be replaced. For cache line replacement, the cache controller will select the least recently accessed line using contents of the LRU array, considering the value of the first set of data, as well as the value of the second set of data indicating whether or not a way is locked. Updates to the LRU occur after each pre-fetch or fetch of a line or when it replaces another line in the cache memory.
    Type: Application
    Filed: August 11, 2004
    Publication date: February 16, 2006
    Applicant: International Business Machines Corporation
    Inventors: James Dieffenderfer, Richard Doing, Brian Frankel, Kenichi Tsuchiya
  • Publication number: 20050216703
    Abstract: A method and apparatus for executing instructions in a pipeline processor. The method decreases the latency between an instruction cache and a pipeline processor when bubbles occur in the processing stream due to an execution of a branch correction, or when an interrupt changes the sequence of an instruction stream. The latency is reduced when a decode stage for detecting branch prediction and a related instruction queue location have invalid data representing a bubble in the processing stream. Instructions for execution are inserted in parallel into the decode stage and instruction queue, thereby reducing by one cycle time the length of the pipeline stage.
    Type: Application
    Filed: March 26, 2004
    Publication date: September 29, 2005
    Applicant: International Business Machines Corporation
    Inventors: James Dieffenderfer, Richard Doing, Brian Stempel, Steven Testa, Kenichi Tsuchiya
  • Publication number: 20050091476
    Abstract: A processor supports logical partitioning of hardware resources including real address spaces of a computer system. An ultra-privileged supervisor process, called a hypervisor, regulates the logical partitions and can dynamically re-allocate resources. Preferably, the processor supports hardware multithreading, each thread independently capable of being in either hypervisor, supervisor, or problem state, and is capable of entering hypervisor state only upon occurrence of certain pre-defined events. A logical partition identifier is stored in a processor register, and can be altered by the processor only when in hypervisor state. Certain bus communications contain a logical partition identifier tag, and the processor ignores such communications if the tag does not match its own logical partition identifier in its register.
    Type: Application
    Filed: September 23, 2004
    Publication date: April 28, 2005
    Applicant: International Business Machines Corporation
    Inventors: Richard Doing, Ronald Kalla, Stephen Schwinn, Edward Silha, Kenichi Tsuchiya