Nova Patents
US9633409B2

GPU predication

Summary by NHIP

GPU Predication with Mirror Registers

The graphics processing unit stores predicate values in a second set of registers that mirror architecturally-defined registers. Control logic evaluates these values to clock gate pipeline stages and discontinue instruction execution without stalling.

Claim Score by NHIP

Read claim 13, the broadest

Abstract

Techniques are disclosed relating to predication. In one embodiment, a graphics processing unit is disclosed that includes a first set of architecturally-defined registers configured to store predication information. The graphics processing unit further includes a second set of registers configured to mirror the first set of registers and an execution pipeline configured to discontinue execution of an instruction sequence based on predication information in the second set of registers. In one embodiment, the second set of registers includes one or more registers proximal to an output of the execution pipeline. In some embodiments, the execution pipeline writes back a predicate value determined for a predicate writer to the second set of registers. The first set of architecturally-defined registers is then updated with the predicate value written back to the second set of registers. In some embodiments, the execution pipeline discontinues execution of the instruction sequence without stalling.

US9633409B2, drawing sheet 1
Sheet 1 of 8

Term

Projected expiry 16 October 2034.

  1. Priority and filed
  2. Granted
  3. Today
  4. Projected expiry

17 claims: 3 independent, 14 dependent

  1. 1
    A graphics processing unit, comprising:a first set of registers, wherein the first set of registers includes architecturally-defined registers;a second set of registers configured to mirror the first set of registers;and an execution pipeline configured to: implement predication for an instruction sequence having opcodes that indicate whether the instruction sequence is to be conditionally executed based on a predicate value generated by a predicate writer instruction;store the predicate value in the second set of registers;and update the first set of registers with the predicate value in the second set of registers;and control logic configured to: perform evaluation of the predicate value in the second set of registers;and based on the evaluation, cause the execution pipeline to discontinue execution of the instruction sequence by clock gating one or more stages of the execution pipeline.
  2. 9
    A method, comprising:maintaining a set of shadow registers for a set of architecturally-defined registers in a graphics processing unit, wherein the set of architecturally-defined registers is configured to store a predicate value for an instruction sequence having opcodes indicating that the instruction sequence is to be conditionally executed based on the predicate value;executing, at an execution pipeline, an instruction that determines a predicate value for the instruction sequence;writing back the predicate value to the set of shadow registers prior to storing the written-back predicate value in the set of architecturally-defined registers;evaluating a polarity of the predicate value in the set of shadow registers;and based on the evaluating, determining whether to discontinue execution of the instruction sequence by disabling a clock signal supplied to one or more stages of the execution pipeline.
  3. 13
    Broadest claimClaim Score 63, broad(NHIP)An apparatus, comprising:an execution pipeline of a graphics processing unit configured to: implement predication for a sequence of instructions having opcodes specifying that the sequence of instructions is to be conditionally executed based on a predicate value generated by a predicate writer instruction;and execute the predicate writer instruction to generate the predicate value;and a control logic configured to: perform evaluation of a polarity of the generated predicate value against a polarity identified from the opcodes;and based on the evaluation, cause clock gating of logic within one or more pipeline stages of the execution pipeline to discontinue execution at the one or more pipeline stages.