Patents by Inventor Chris Abernathy

Chris Abernathy 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: 11693666
    Abstract: A predicated-loop-terminating branch instruction controls, based on whether a loop termination condition is satisfied, whether the processing circuitry should process a further iteration of a predicated loop body or process a following instruction. If at least one unnecessary iteration of the predicated loop body is processed following a mispredicted-non-termination branch misprediction when the loop termination condition is mispredicted as unsatisfied for a given iteration when it should have been satisfied, processing of the at least one unnecessary iteration of the predicated loop body is predicated to suppress an effect of the at least one unnecessary iteration.
    Type: Grant
    Filed: October 20, 2021
    Date of Patent: July 4, 2023
    Assignee: Arm Limited
    Inventors: Joseph Michael Pusdesris, Nicholas Andrew Plante, Yasuo Ishii, Chris Abernathy
  • Publication number: 20230120596
    Abstract: A predicated-loop-terminating branch instruction controls, based on whether a loop termination condition is satisfied, whether the processing circuitry should process a further iteration of a predicated loop body or process a following instruction. If at least one unnecessary iteration of the predicated loop body is processed following a mispredicted-non-termination branch misprediction when the loop termination condition is mispredicted as unsatisfied for a given iteration when it should have been satisfied, processing of the at least one unnecessary iteration of the predicated loop body is predicated to suppress an effect of the at least one unnecessary iteration.
    Type: Application
    Filed: October 20, 2021
    Publication date: April 20, 2023
    Inventors: Joseph Michael PUSDESRIS, Nicholas Andrew PLANTE, Yasuo ISHII, Chris ABERNATHY
  • Patent number: 11526359
    Abstract: A data processing apparatus is provided that includes global-history prediction circuitry that provides a prediction of an outcome of a given control flow instruction based on a result of execution of one or more previous control flow instructions. Correction circuitry provides a corrected prediction of the global-history prediction circuitry in respect of the given control flow instruction and cache circuitry, separate from the correction circuitry, stores the corrected prediction in respect of the given control flow instruction.
    Type: Grant
    Filed: October 3, 2018
    Date of Patent: December 13, 2022
    Assignee: Arm Limited
    Inventors: Yasuo Ishii, Muhammad Umar Farooq, Chris Abernathy
  • Publication number: 20220318051
    Abstract: Circuitry comprises two or more clusters of execution units, each cluster comprising one or more execution units to execute processing instructions; and scheduler circuitry to maintain one or more queues of processing instructions, the scheduler circuitry comprising picker circuitry to select a queued processing instruction for issue to an execution unit of one of the clusters of execution units for execution; in which: the scheduler circuitry is configured to maintain dependency data associated with each queued processing instruction, the dependency data for a queued processing instruction indicating any source operands which are required to be available for use in execution of that queued processing instruction and to inhibit issue of that queued processing instruction until all of the required source operands for that queued processing instruction are available and is configured to be responsive to an indication to the scheduler circuitry of the availability of the given operand as a source operand for use
    Type: Application
    Filed: March 31, 2021
    Publication date: October 6, 2022
    Inventors: Chris ABERNATHY, Eric Charles QUINNELL, ABHISHEK RAJA, Michael David ACHENBACH
  • Patent number: 11204878
    Abstract: An apparatus is provided that includes a memory hierarchy comprising a plurality of caches and a memory. Prefetch circuitry acquires data from the memory hierarchy before the data is explicitly requested by processing circuitry configured to execute a stream of instructions. Writeback circuitry causes the data to be written back from a higher level cache of the memory hierarchy to a lower level cache of the memory hierarchy and tracking circuitry tracks a proportion of entries that are stored in the lower level cache of the memory hierarchy having been written back from the higher level cache of the memory hierarchy, that are subsequently explicitly requested by the processing circuitry in response to one of the instructions.
    Type: Grant
    Filed: October 8, 2020
    Date of Patent: December 21, 2021
    Assignee: Arm Limited
    Inventors: Joseph Michael Pusdesris, Chris Abernathy
  • Patent number: 11086629
    Abstract: Apparatus and a method of operating the same is disclosed. Instruction fetch circuitry is provided to fetch a block of instructions from memory and branch prediction circuitry to generate branch prediction indications for each branch instruction present in the block of instructions. The branch prediction circuitry is responsive to identification of a first conditional branch instruction in the block of instructions that is predicted to be taken to modify a branch prediction indication generated for the first conditional branch instruction to include a subsequent branch status indicator. When there is a subsequent branch instruction after the first conditional branch instruction in the block of instructions that is predicted to be taken the subsequent branch status indicator has a first value, and otherwise the subsequent branch status indicator has a second value. This supports improved handling of a misprediction as taken.
    Type: Grant
    Filed: November 9, 2018
    Date of Patent: August 10, 2021
    Assignee: ARM Limited
    Inventors: Yasuo Ishii, Muhammad Umar Farooq, Chris Abernathy
  • Patent number: 11029959
    Abstract: Branch prediction circuitry processes blocks of instructions and provides instruction fetch circuitry with indications of predicted next blocks of instructions to be retrieved from memory. Main branch target storage stores branch target predictions for branch instructions in the blocks of instructions. Secondary branch target storage caches the branch target predictions from the main branch target storage. Look-ups in the secondary branch target storage and the main branch target storage are performed in parallel. The main branch target storage is set-associative and an entry in the main branch target storage comprises multiple ways, wherein each way of the multiple ways stores a branch target prediction for one branch instruction.
    Type: Grant
    Filed: September 4, 2018
    Date of Patent: June 8, 2021
    Assignee: Arm Limited
    Inventors: Yasuo Ishii, Muhammad Umar Farooq, Chris Abernathy
  • Patent number: 10963258
    Abstract: A data processing apparatus is provided that includes lookup circuitry to provide first prediction data in respect of a first block of instructions and second prediction data in respect of a second block of instructions. First processing circuitry provides a first control flow prediction in respect of the first block of instructions using the first prediction data and second processing circuitry provides a second control flow prediction in respect of the second block of instructions using the second prediction data. The first block of instructions and the second block of instructions collectively define a prediction block and the lookup circuitry uses a reference to the prediction block as at least part of an index to both the first prediction data and the second prediction data.
    Type: Grant
    Filed: October 9, 2018
    Date of Patent: March 30, 2021
    Assignee: Arm Limited
    Inventors: Yasuo Ishii, Muhammad Umar Farooq, Chris Abernathy
  • Patent number: 10817426
    Abstract: A variety of data processing apparatuses are provided in which stride determination circuitry determines a stride value as a difference between a current address and a previously received address. Stride storage circuitry stores an association between stride values determined by the stride determination circuitry and a frequency during a training period. Prefetch circuitry causes a further data value to be proactively retrieved from a further address. The further address is the current address modified by a stride value in the stride storage circuitry having a highest frequency during the training period. The variety of data processing apparatuses are directed towards improving efficiency by variously disregarding certain candidate stride values, considering additional further addresses for prefetching by using multiple stride values, using feedback to adjust the training process and compensating for page table boundaries.
    Type: Grant
    Filed: September 24, 2018
    Date of Patent: October 27, 2020
    Assignee: Arm Limited
    Inventors: Krishnendra Nathella, Chris Abernathy, Huzefa Moiz Sanjeliwala, Dam Sunwoo, Balaji Vijayan
  • Patent number: 10817299
    Abstract: A data processing apparatus is provided that includes a plurality of control flow execution circuits to simultaneously execute a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions. A control flow prediction update circuit updates at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.
    Type: Grant
    Filed: September 7, 2018
    Date of Patent: October 27, 2020
    Assignee: Arm Limited
    Inventors: Yasuo Ishii, Chris Abernathy
  • Patent number: 10810126
    Abstract: The present disclosure is concerned with improvements to cache systems that can be used to improve the performance (e.g. hit performance) and/or bandwidth within a memory hierarchy. For instance, a data processing apparatus is provided that comprises a cache. Access circuitry receives one or more requests for data and when the data is present in the cache the data is returned. Retrieval circuitry retrieves the data and stores the data in the cache, either proactively or in response to the one or more requests for the data. Control circuitry evicts the data from the cache and, in dependence on at least one condition, stores the data in the further cache. The at least one condition comprises a requirement that the data was stored into the cache proactively and that a number of the one or more requests is above a threshold value.
    Type: Grant
    Filed: September 24, 2018
    Date of Patent: October 20, 2020
    Assignee: Arm Limited
    Inventors: Joseph Michael Pusdesris, Adrian Montero, Klas Magnus Bruce, Chris Abernathy
  • Patent number: 10776043
    Abstract: Storage circuitry is provided, that is designed to form part of a memory hierarchy. The storage circuitry comprises receiver circuitry for receiving a request to obtain data from the memory hierarchy. Transfer circuitry causes the data to be stored at a selected destination in response to the request, wherein the selected destination is selected in dependence on at least one selection condition. Tracker circuitry tracks the request while the request is unresolved. If at least one selection condition is met then the destination is the storage circuitry and otherwise the destination is other storage circuitry in the memory hierarchy.
    Type: Grant
    Filed: August 31, 2018
    Date of Patent: September 15, 2020
    Assignee: Arm Limited
    Inventors: Adrian Montero, Miles Robert Dooley, Joseph Michael Pusdesris, Klas Magnus Bruce, Chris Abernathy
  • Patent number: 10754687
    Abstract: There is provided a data processing apparatus that includes processing circuitry for executing a plurality of instructions. Storage circuitry stores a plurality of entries, each entry relating to an instruction in the plurality of instructions and including a dependency field. The dependency field stores a data dependency of that instruction on a previous instruction in the plurality of instructions. Scheduling circuitry schedules the execution of the plurality of instructions in an order that depends on each data dependency. When the previous instruction is a single-cycle instruction, the dependency field includes a reference to one of the entries that relates to the previous instruction, otherwise, the data dependency field includes an indication of an output destination of the previous instruction.
    Type: Grant
    Filed: June 12, 2018
    Date of Patent: August 25, 2020
    Assignee: Arm Limited
    Inventors: . Abhishek Raja, Chris Abernathy, Michael Filippo
  • Publication number: 20200150967
    Abstract: Apparatus and a method of operating the same is disclosed. Instruction fetch circuitry is provided to fetch a block of instructions from memory and branch prediction circuitry to generate branch prediction indications for each branch instruction present in the block of instructions. The branch prediction circuitry is responsive to identification of a first conditional branch instruction in the block of instructions that is predicted to be taken to modify a branch prediction indication generated for the first conditional branch instruction to include a subsequent branch status indicator. When there is a subsequent branch instruction after the first conditional branch instruction in the block of instructions that is predicted to be taken the subsequent branch status indicator has a first value, and otherwise the subsequent branch status indicator has a second value. This supports improved handling of a misprediction as taken.
    Type: Application
    Filed: November 9, 2018
    Publication date: May 14, 2020
    Inventors: Yasuo ISHII, Muhammad Umar FAROOQ, Chris ABERNATHY
  • Publication number: 20200110611
    Abstract: A data processing apparatus is provided that includes lookup circuitry to provide first prediction data in respect of a first block of instructions and second prediction data in respect of a second block of instructions. First processing circuitry provides a first control flow prediction in respect of the first block of instructions using the first prediction data and second processing circuitry provides a second control flow prediction in respect of the second block of instructions using the second prediction data. The first block of instructions and the second block of instructions collectively define a prediction block and the lookup circuitry uses a reference to the prediction block as at least part of an index to both the first prediction data and the second prediction data.
    Type: Application
    Filed: October 9, 2018
    Publication date: April 9, 2020
    Inventors: Yasuo ISHII, Muhammad Umar FAROOQ, Chris ABERNATHY
  • Publication number: 20200110615
    Abstract: A data processing apparatus is provided that includes global-history prediction circuitry that provides a prediction of an outcome of a given control flow instruction based on a result of execution of one or more previous control flow instructions. Correction circuitry provides a corrected prediction of the global-history prediction circuitry in respect of the given control flow instruction and cache circuitry, separate from the correction circuitry, stores the corrected prediction in respect of the given control flow instruction.
    Type: Application
    Filed: October 3, 2018
    Publication date: April 9, 2020
    Inventors: Yasuo ISHII, Muhammad Umar FAROOQ, Chris ABERNATHY
  • Publication number: 20200097410
    Abstract: The present disclosure is concerned with improvements to cache systems that can be used to improve the performance (e.g. hit performance) and/or bandwidth within a memory hierarchy. For instance, a data processing apparatus is provided that comprises a cache. Access circuitry receives one or more requests for data and when the data is present in the cache the data is returned. Retrieval circuitry retrieves the data and stores the data in the cache, either proactively or in response to the one or more requests for the data. Control circuitry evicts the data from the cache and, in dependence on at least one condition, stores the data in the further cache. The at least one condition comprises a requirement that the data was stored into the cache proactively and that a number of the one or more requests is above a threshold value.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Joseph Michael Pusdesris, Adrian Montero, Klas Magnus Bruce, Chris Abernathy
  • Publication number: 20200097409
    Abstract: A variety of data processing apparatuses are provided in which stride determination circuitry determines a stride value as a difference between a current address and a previously received address. Stride storage circuitry stores an association between stride values determined by the stride determination circuitry and a frequency during a training period. Prefetch circuitry causes a further data value to be proactively retrieved from a further address. The further address is the current address modified by a stride value in the stride storage circuitry having a highest frequency during the training period. The variety of data processing apparatuses are directed towards improving efficiency by variously disregarding certain candidate stride values, considering additional further addresses for prefetching by using multiple stride values, using feedback to adjust the training process and compensating for page table boundaries.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Krishnendra Nathella, Chris Abernathy, Huzefa Moiz Sanjeliwala, Dam Sunwoo, Balaji Vijayan
  • Publication number: 20200081715
    Abstract: A data processing apparatus is provided that includes a plurality of control flow execution circuits to simultaneously execute a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions. A control flow prediction update circuit updates at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.
    Type: Application
    Filed: September 7, 2018
    Publication date: March 12, 2020
    Inventors: Yasuo ISHII, Chris ABERNATHY
  • Publication number: 20200073666
    Abstract: Branch prediction circuitry processes blocks of instructions and provides instruction fetch circuitry with indications of predicted next blocks of instructions to be retrieved from memory. Main branch target storage stores branch target predictions for branch instructions in the blocks of instructions. Secondary branch target storage caches the branch target predictions from the main branch target storage. Look-ups in the secondary branch target storage and the main branch target storage are performed in parallel. The main branch target storage is set-associative and an entry in the main branch target storage comprises multiple ways, wherein each way of the multiple ways stores a branch target prediction for one branch instruction.
    Type: Application
    Filed: September 4, 2018
    Publication date: March 5, 2020
    Inventors: Yasuo ISHII, Muhammad Umar FAROOQ, Chris ABERNATHY