Patent ID: 8169439
Filing Date: 2012-05-01
Classification: G06F,G06T

Abstract:
1. A processor comprising: a register file comprising a plurality of registers, wherein the plurality of registers configured to store vector and scalar data, wherein each of the plurality of registers comprise one or more sections configured to store an operand selected from a vector operand and a scalar operand; and a vector processing unit communicably coupled with the register file, the vector processing unit comprising a plurality of pipelined vector processing lanes that includes a multiplier, an aligner, an adder, a normalizer, and a rounder, wherein the plurality of pipelined vector processing lanes are configured to: determine whether each of a plurality of interconnected triangles representing an object in a three-dimensional scene of a virtual environment is visible to a viewer, wherein each triangle is represented by two associated vectors, wherein determining whether each triangle is visible comprises: determining a surface normal for the respective triangle by performing a cross product operation between the two vectors associated with the respective triangle, wherein the cross product operation is performed without requiring any data to be exchanged via memory and between: (i) a scalar register file associated with a scalar processing unit and (ii) a vector register file associated with a vector processing unit via memory, thereby avoiding memory access latencies associated with exchanging data between the scalar register file and the vector register file when performing the cross product operation, wherein the cross product operation comprises six scalar multiply instructions, three scalar subtract instructions, three vector multiply instructions, and two vector add instructions, wherein performing the cross product operation comprises: updating data contained in the register file by executing, in the same cycle, separately issued vector and scalar instructions of the cross product operation; and reordering, in the register file, operands for at least one of the vector and scalar instructions of the cross product operation without requiring any permute instruction and by way of at least one multiplexor provided at an input of at least one of the plurality of pipelined vector processing lanes, wherein the scalar instructions are processed in a predetermined one or more vector processing lanes of the plurality of pipelined vector processing lanes of the vector processing unit; and determining that the respective triangle is visible based upon a determination that the surface normal for the respective triangle points toward the viewer; and upon determining that at least a first triangle is visible to the viewer, render the first triangle, wherein at least a second triangle that is not visible to the viewer is not rendered.