EP3175355A2

Method and apparatus for instruction prefetch

Abstract

This record has no abstract on file.

Term

8.8 yearsto projected expiry

Projected expiry 27 July 2035, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

19 claims: 5 independent, 14 dependent

  1. 1
    Claims of equivalent WO 2016016726 A2 CLAIMS 1. A computer-implemented method for managing a variable-length instruction buffer, comprising:caching variable-length instruction data from a first reference location;comparing a first level of unprocessed data available in an instruction buffer at a first time to a default threshold;loading a fixed width of data from the cached instruction data into the instruction buffer based on the first level of unprocessed data not satisfying the default threshold;processing a branching instruction referencing a second reference location different from the first reference location, the branching instruction including a header indicating a branch delay size;comparing a second level of unprocessed data available in the instruction buffer at a second time after the branching instruction is processed to the branch delay size;and loading a fixed width of data from the cached instruction data into the buffer based on the second level of unprocessed data not satisfying the branch delay size.
  2. 4
    A system for managing variable-length instructions, comprising:a cache for storing variable-length instructions from memory, the cache configured to load instructions from a particular memory location;a buffer for decoupling data loaded from the cache into instructions, the buffer configured to receive fixed-width data lines from the cache and output variable-length instructions;and a fetch unit configured to determine a level of unprocessed data in the buffer and instruct the cache to load additional data into the buffer;wherein the fetch unit is further configured to: compare a first level of unprocessed data available in the buffer at a first time to a default threshold to determine when to instruct the cache to load additional data into the buffer;after the system identifies a branching instruction, determine a branch delay size from the branching instruction header;and compare a second level of unprocessed data available in the buffer at a second time after the system identifies the branching instruction to the branch delay size instead of the default threshold to determine when to instruct the cache to load additional data into the buffer.
  3. 5
    A computer-implemented method for hardware processing of data, comprising:receiving a first variable-length instruction, the instruction indicating a first operation to perform and referencing one or more first operands;determining a first data type for the one or more first operands;performing the first operation on the first operands of the first data type using a first hardware logic circuit;receiving a second variable-length instruction, the instruction indicating to perform the first operation and referencing one or more second operands;determining a second data type for the one or more second operands, wherein the second data type is different from the first data type;and performing the first operation on the second operands of the second data type using the first hardware logic.
  4. 8
    A computer-implemented method, comprising:storing a look-up table of results entries for an operation, the look-up table including fractional results at a predetermined level of precision, wherein the look-up table includes, for each entry, a plurality of encoded bits and a plurality of unencoded bits;in response to an instruction including the operation, looking up a particular entry corresponding to a particular value on the look-up table;decoding the encoded bits to generate a part of the fractional result;adding at least the unencoded bits to the generated fractional result;and returning the result of the operation based on the generated fractional result.
  5. 15
    A computer-implemented method for in-line vector alteration, comprising:receiving a variable-length instruction including an operation to be performed on an altered form of a vector referenced at a first memory location;generating an altered vector as specified by the variable-length instruction;and performing the operation on the altered vector;wherein, after the operation is performed, the vector at the first memory location is in its original unaltered form.