Patents by Inventor Derek Hower

Derek Hower 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: 11221971
    Abstract: Systems and methods are directed to managing access to a shared memory. A request received at a memory controller, for access to the shared memory from a client of one or more clients configured to access the shared memory, is placed in at least one queue in the memory controller. A series of one or more timeout values is assigned to the request, based, at least in part on a priority associated with the client which generated the request. The priority may be fixed or based on a Quality-of-Service (QoS) class of the client. A timer is incremented while the request remains in the first queue. As the timer traverses each one of the one or more timeout values in the series, a criticality level of the request is incremented. A request with a higher criticality level may be prioritized for servicing over a request with a lower criticality level.
    Type: Grant
    Filed: September 23, 2016
    Date of Patent: January 11, 2022
    Assignee: Qualcomm Incorporated
    Inventors: Derek Hower, Harold Wade Cain, III, Carl Alan Waldspurger
  • Patent number: 10838731
    Abstract: Branch prediction methods and systems include, for a branch instruction fetched by a processor, indexing a branch identification (ID) table based on a function of a program counter (PC) value of the branch instruction, wherein each entry of the branch ID table comprises at least a tag field, and an accuracy counter. For a tag hit at an entry indexed by the PC value, if a value of the corresponding accuracy counter is greater than or equal to zero, a prediction counter from a prediction counter pool is selected based on a function of the PC value and a load-path history, wherein the prediction counters comprise respective confidence values and prediction values. A memory-dependent branch prediction of the branch instruction is assigned as the prediction value of the selected prediction counter if the associated confidence value is greater than zero, while branch prediction from a conventional branch predictor is overridden.
    Type: Grant
    Filed: September 19, 2018
    Date of Patent: November 17, 2020
    Assignee: Qualcomm Incorporated
    Inventors: Rami Mohammad A. Al Sheikh, Michael Scott McIlvaine, Robert Douglas Clancy, Derek Hower
  • Publication number: 20200089504
    Abstract: Branch prediction methods and systems include, for a branch instruction fetched by a processor, indexing a branch identification (ID) table based on a function of a program counter (PC) value of the branch instruction, wherein each entry of the branch ID table comprises at least a tag field, and an accuracy counter. For a tag hit at an entry indexed by the PC value, if a value of the corresponding accuracy counter is greater than or equal to zero, a prediction counter from a prediction counter pool is selected based on a function of the PC value and a load-path history, wherein the prediction counters comprise respective confidence values and prediction values. A memory-dependent branch prediction of the branch instruction is assigned as the prediction value of the selected prediction counter if the associated confidence value is greater than zero, while branch prediction from a conventional branch predictor is overridden.
    Type: Application
    Filed: September 19, 2018
    Publication date: March 19, 2020
    Inventors: Rami Mohammad A. AL SHEIKH, Michael Scott MCILVAINE, Robert Douglas CLANCY, Derek HOWER
  • Patent number: 10379863
    Abstract: Systems and methods for constructing an instruction slice for prefetching data of a data-dependent load instruction include a slicer for identifying a load instruction in an instruction sequence as a first occurrence of a qualified load instruction which will miss in a last-level cache. A commit buffer stores information pertaining to the first occurrence of the qualified load instruction and shadow instructions which follow. For a second occurrence of the qualified load instruction, an instruction slice is constructed from the information in the commit buffer to form a slice payload. A pre-execution engine pre-executes the instruction slice based on the slice payload to determine an address from which data is to be fetched for execution of a third and any subsequent occurrences of the qualified load instruction. The data is prefetched from the determined address for the third and any subsequent occurrence of the qualified load instruction.
    Type: Grant
    Filed: September 21, 2017
    Date of Patent: August 13, 2019
    Assignee: QUALCOMM Incorporated
    Inventors: Shivam Priyadarshi, Rami Mohammad A. Al Sheikh, Brandon Dwiel, Derek Hower
  • Patent number: 10303608
    Abstract: A first load instruction specifying a first virtual address misses in a data cache. A delta value is received based on a program counter value of the first load instruction. A second virtual address is computed based on the delta value and the first virtual address. Data associated with the second virtual address is then prefetched from a main memory to the data cache prior to a second load instruction specifying the second virtual address missing in the data cache.
    Type: Grant
    Filed: August 22, 2017
    Date of Patent: May 28, 2019
    Assignee: QUALCOMM Incorporated
    Inventors: Rami Mohammad Al Sheikh, Shivam Priyadarshi, Brandon Dwiel, David John Palframan, Derek Hower, Muntaquim Faruk Chowdhury
  • Publication number: 20190087192
    Abstract: Systems and methods for constructing an instruction slice for prefetching data of a data-dependent load instruction include a slicer for identifying a load instruction in an instruction sequence as a first occurrence of a qualified load instruction which will miss in a last-level cache. A commit buffer stores information pertaining to the first occurrence of the qualified load instruction and shadow instructions which follow. For a second occurrence of the qualified load instruction, an instruction slice is constructed from the information in the commit buffer to form a slice payload. A pre-execution engine pre-executes the instruction slice based on the slice payload to determine an address from which data is to be fetched for execution of a third and any subsequent occurrences of the qualified load instruction. The data is prefetched from the determined address for the third and any subsequent occurrence of the qualified load instruction.
    Type: Application
    Filed: September 21, 2017
    Publication date: March 21, 2019
    Inventors: Shivam PRIYADARSHI, Rami Mohammad A. AL SHEIKH, Brandon DWIEL, Derek HOWER
  • Publication number: 20190065375
    Abstract: A first load instruction specifying a first virtual address misses in a data cache. A delta value is received based on a program counter value of the first load instruction. A second virtual address is computed based on the delta value and the first virtual address. Data associated with the second virtual address is then prefetched from a main memory to the data cache prior to a second load instruction specifying the second virtual address missing in the data cache.
    Type: Application
    Filed: August 22, 2017
    Publication date: February 28, 2019
    Inventors: Rami Mohammad AL SHEIKH, Shivam PRIYADARSHI, Brandon DWIEL, David John PALFRAMAN, Derek HOWER, Muntaquim Faruk CHOWDHURY
  • Publication number: 20190065964
    Abstract: A method and apparatus for predicting instruction load values in a processor. While a program is executing the processor is used to train predictors in order to predict load values. In particular 4 differing kinds of predictors are trained. The four predictors are the Last Value Predictor (LVP) which captures loads that encounter very few values, the Stride Address Predictor (SAP) which captures loads based on stride (offset) addresses, a Content Address Predictor (CAP) which captures load addresses that are non-stride and the Context Value Predictor (CVP) which captures load values in a particular context that are non-stride. Training methods and the use of such predictors are disclosed.
    Type: Application
    Filed: August 30, 2017
    Publication date: February 28, 2019
    Inventors: Rami Mohammad A. AL SHEIKH, Derek HOWER
  • Publication number: 20190065384
    Abstract: A request to access data at a first physical address misses in a private cache of a processor. A confidence value is received for the first physical address based on a hash value of the first physical address. A determination is made that the received confidence value exceeds a threshold value. In response, a speculative read request specifying the first physical address is issued to a memory controller of a main memory to expedite a miss for the data at the first physical address in a shared cache.
    Type: Application
    Filed: August 22, 2017
    Publication date: February 28, 2019
    Inventors: Rami Mohammad AL SHEIKH, Shivam PRIYADARSHI, Brandon DWIEL, David John PALFRAMAN, Derek HOWER
  • Publication number: 20170293578
    Abstract: Systems and methods are directed to managing access to a shared memory. A request received at a memory controller, for access to the shared memory from a client of one or more clients configured to access the shared memory, is placed in at least one queue in the memory controller. A series of one or more timeout values is assigned to the request, based, at least in part on a priority associated with the client which generated the request. The priority may be fixed or based on a Quality-of-Service (QoS) class of the client. A timer is incremented while the request remains in the first queue. As the timer traverses each one of the one or more timeout values in the series, a criticality level of the request is incremented. A request with a higher criticality level may be prioritized for servicing over a request with a lower criticality level.
    Type: Application
    Filed: September 23, 2016
    Publication date: October 12, 2017
    Inventors: Derek HOWER, Harold Wade CAIN, III, Carl Alan WALDSPURGER
  • Patent number: 9746908
    Abstract: A processor prunes state information based on information provided by software, thereby reducing the amount of state information to be stored prior to the processor entering a low-power state. The software, such as an operating system or application program executing at the processor, indicates one or more registers of the processor as storing data that is no longer useful. When preparing to enter the low-power state, the processor omits the indicated registers from the state information stored to memory.
    Type: Grant
    Filed: February 25, 2015
    Date of Patent: August 29, 2017
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Yasuko Eckert, Derek Hower, Marc Orr
  • Publication number: 20160246360
    Abstract: A processor prunes state information based on information provided by software, thereby reducing the amount of state information to be stored prior to the processor entering a low-power state. The software, such as an operating system or application program executing at the processor, indicates one or more registers of the processor as storing data that is no longer useful. When preparing to enter the low-power state, the processor omits the indicated registers from the state information stored to memory.
    Type: Application
    Filed: February 25, 2015
    Publication date: August 25, 2016
    Inventors: Yasuko Eckert, Derek Hower, Marc Orr