Graphics system and method for processing multiple independent execution threads
AssigneeNVIDIA Corporation
InventorsJohn Erik Lindholm, Simon Moy, Kevin Dawallu, John Montrym
Life of this patent
Estimating the term…
Abstract
A method, apparatus and article of manufacture are provided for sequencing graphics processing in a transform or lighting operation. A plurality of mode bits are first received which are indicative of the status of a plurality of modes of process operations. A plurality of addresses are then identified in memory based on the mode bits. Such addresses are then accessed in the memory for retrieving code segments which each are adapted to carry out the process operations in accordance with the status of the modes. The code segments are subsequently executed within a transform or lighting module for processing vertex data.
Claims23
A method for processing multiple threads of vertex data in a plurality of graphics processing modules, comprising:
- accessing a first code segment per a first program counter;
- executing the first code segment in a graphics processing module of a hardware graphics processor, wherein the graphics processing module requires more than one clock cycle to complete the execution;
- accessing a second code segment per a second program counter;
- and
- executing the second code segment in the graphics processing module prior to the completion of the execution of the first code segment in the graphics processing module;
- wherein the hardware graphics processor is capable of processing multiple threads of vertex data in a plurality of graphics processing modules including at least one adder, at least one multiplier, a register, and an inverse logic unit which at least in part define a transform module for transforming the vertex data;
- wherein a first code segment delay is employed between the adder and the multiplier when a multiplication instruction is followed by an addition instruction, and a second code segment delay is employed between the adder, and at least one of the register and the inverse logic unit.
A computer program embodied on a computer readable medium for processing multiple threads of vertex data in a plurality of graphics processing modules, comprising:
- (a) a code segment for accessing a first code element per a first program counter;
- (b) a code segment for executing the first code element in a graphics processing module of a hardware graphics processor, wherein the graphics processing module requires more than one clock cycle to complete the execution;
- (c) a code segment for accessing a second code element per a second program counter and
- (d) a code segment for executing the second code element in the graphics processing module prior to the completion of the execution of the first code element in the graphics processing module;
- wherein the hardware graphics processor is capable of processing multiple threads of vertex data in a plurality or graphics processing modules including at least one adder, at least one multiplier, a register, and an inverse logic unit which at least in pan define a transform module for transforming the vertex data;
- wherein a first code segment delay is employed between the adder and the multiplier when a multiplication instruction is followed by an addition instruction, and a second code segment delay is employed between the adder, and at least one of the register and the inverse logic unit.
A hardware graphics processor system for processing multiple threads of vertex data in a plurality of graphics processing modules thereof, comprising:
- a first program counter of a hardware graphics processor for accessing a first code segment;
- a graphics processing module of the hardware graphics processor for executing the first code segment wherein the graphics processing module requires more than one clock cycle to complete the execution;
- and
- a second program counter of the hardware graphics processor for accessing a second code segment;
- wherein the second code segment is executed in the graphics processing module prior to the completion of the execution of the first code segment in the graphics processing module;
- wherein the hardware graphics processor is capable of processing multiple threads of vertex data with independent sequencing in a plurality of graphics processing modules including at least one adder, at least one multiplier, a register, and an inverse logic unit which at least in part define a transform module for transforming the vertex data;
- wherein a multiple-clock cycle first code segment delay is employed between the adder and the multiplier when a multiplication instruction is followed by an addition instruction, and a second code segment delay is employed between the adder, and at least one of the register and the inverse logic unit.
The method as recited in claim wherein the transform module is further defined by:
- (a) an input buffer adapted for receiving the vertex data;
- (b) the multiplier having a first input coupled to an output of the input buffer;
- (c) the adder having a first input coupled to an output of the multiplier;
- (d) the register having an input coupled to an output of the adder;
- (e) the inverse logic unit including an input coupled to the output of the adder for performing an inverse operation;
- (f) a conversion module coupled between an output of the inverse logic unit and a second input of the multiplier, the conversion module adapted to convert scalar vertex data to vector vertex data;
- and
- (g) a memory coupled to the multiplier and the adder.
Dependencies are inferred from the claim text.