US9304774B2

Processor with a coprocessor having early access to not-yet issued instructions

Summary by NHIP

Early Coprocessor Instruction Access

The apparatus stores mixed processor and coprocessor instructions in a fetch queue configured as a FIFO for processors and an out-of-order queue for coprocessors. A selector copies coprocessor instructions for out-of-order execution before they are issued to the processor, with completion based on later processor information.

Claim Score by NHIP

Read claim 22, the broadest

Abstract

Apparatus and methods provide early access of instructions. A fetch queue is coupled to an instruction cache and configured to store a mix of processor instructions for a first processor and coprocessor instructions for a second processor. A coprocessor instruction selector is coupled to the fetch queue and configured to copy coprocessor instructions from the fetch queue. A queue is coupled to the coprocessor instruction selector and from which coprocessor instructions are accessed for execution before the coprocessor instruction is issued to the first processor. Execution of the copied coprocessor instruction is started in the coprocessor before the coprocessor instruction is issued to a processor. The execution of the copied coprocessor instruction is completed based on information received from the processor after the coprocessor instruction has been issued to the processor.

US9304774B2, drawing sheet 1
Sheet 1 of 9

Term

Projected expiry 11 June 2034.

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

24 claims: 5 independent, 19 dependent

  1. 1
    A method for early access of instructions, the method comprising:fetching a mix of coprocessor instructions for a coprocessor and processor instructions for a processor from an instruction cache for storage according to a program order of instructions in an instruction fetch queue operating as a first-in first-out (FIFO) queue for the stored processor instructions and the stored coprocessor instructions, as an out-of-order queue for access of the stored coprocessor instructions with respect to the stored processor instructions, and as an in-order queue for access of the stored coprocessor instructions with respect to other stored coprocessor instructions;copying a first coprocessor instruction from the instruction fetch queue that is forwarded to the coprocessor, the copied coprocessor instruction selected out-of-order with respect to the stored processor instructions, wherein the mix of coprocessor instructions, including the first coprocessor instruction, and the processor instructions stored in the instruction fetch queue are accessed according to the program order from the instruction fetch queue to be issued to the processor;starting execution of the copied first coprocessor instruction in the coprocessor before the first coprocessor instruction is issued from the instruction fetch queue to the processor;and completing the execution of the copied first coprocessor instruction in the coprocessor based on information received from the processor after the first coprocessor instruction has been issued from the instruction fetch queue to the processor.
  2. 11
    An apparatus for early access of instructions, the apparatus comprising:a fetch queue coupled to an instruction cache, the fetch queue configured to store a first class of instructions fetched from the instruction cache for a first processor and a second class of instructions fetched from the instruction cache for a second processor, wherein the fetch queue operates as a first-in first-out (FIFO) queue for the first class instructions and the second class instructions which are accessed according to a program order of instructions from a first output of the fetch queue to be issued to the first processor;a second class instruction selector coupled to the fetch queue which operates as an out-of-order queue for accessing the second class instructions with respect to the first class instructions from a second output of the fetch queue and is configured to copy the second class instructions in parallel from the second output of the fetch queue skipping over any intermixed first class instructions;and a queue coupled to the second class instruction selector, the queue configured to store the copied second class instructions and to issue the copied second class instructions from the queue to start execution of the copied second class instructions by the second processor before the second class instructions are issued to the first processor.
  3. 16
    A method for starting execution of not-yet issued instructions, the method comprising:fetching a mix of coprocessor instructions for a coprocessor and processor instructions for a processor according to program order from an instruction cache for storage in an instruction fetch queue operating as a first-in first-out (FIFO) queue for the stored processor instructions and the stored coprocessor instructions, as an out-of-order queue for access of the stored coprocessor instructions with respect to the stored processor instructions, and as an in-order queue for access of the stored coprocessor instructions with respect to other stored coprocessor instructions;copying a plurality of coprocessor instructions from an instruction fetch queue that is forwarded to the coprocessor, the copied coprocessor instruction selected out-of-order with respect to the stored processor instructions;and starting parallel execution of the plurality of copied coprocessor instructions in the coprocessor before the plurality of coprocessor instructions are issued from the instruction fetch queue to a processor, wherein the parallel execution of the plurality of copied coprocessor instructions is completed in the coprocessor based on information generated by the processor in response to an evaluation of the plurality of coprocessor instructions issued from the instruction fetch queue to the processor.
  4. 22
    Broadest claimClaim Score 41, average(NHIP)An apparatus for early access of instructions, the apparatus comprising:means for storing a first class of instructions fetched from an instruction cache for a first processor and a second class of instructions fetched from the instruction cache for a second processor in a fetch queue, wherein the fetch queue operates as a first-in first-out (FIFO) queue for the first class of instructions and the second class of instructions which are accessed according to a program order of instructions from a first output of the fetch queue to be issued to the first processor;means for copying second class instructions in parallel from a second output of the fetch queue which operates as an out-of-order queue for accessing the second class instructions with respect to the first class instructions and skipping over any intermixed first class instructions;and means for storing the copied second class instructions and for the issuing the copied second class instructions from the queue to start execution of the copied second class instructions by the second processor before the second class instructions are issued from the first output of the fetch queue to the first processor.
  5. 24
    A computer readable non-transitory medium encoded with computer readable program data and code, the program data and code when executed on a computer system executes a method comprising:fetching a mix of coprocessor instructions for a coprocessor and processor instructions for a processor from an instruction cache for storage according to a program order of instructions in an instruction fetch queue operating as a first-in first-out (FIFO) queue for the stored processor instructions and the stored coprocessor instructions, as an out-of-order queue for access of the stored coprocessor instructions with respect to the stored processor instructions, and as an in-order queue for access of the stored coprocessor instructions with respect to other stored coprocessor instructions;copying a first coprocessor instruction from the instruction fetch queue that is forwarded to the coprocessor, the copied coprocessor instruction selected out-of-order with respect to the stored processor instructions, wherein the mix of coprocessor instructions, including the first coprocessor instruction, and the processor instructions stored in the instruction fetch queue are accessed according to the program order from the instruction fetch queue to be issued to a processor;starting execution of the copied first coprocessor instruction in the coprocessor before the first coprocessor instruction is issued from the instruction fetch queue to the processor;and completing the execution of the copied first coprocessor instruction in the coprocessor based on information received from the processor after the first coprocessor instruction has been issued from the instruction fetch queue to the processor.