Multi-function floating point arithmetic pipeline
AssigneeMicron Technology, Inc.
InventorSteven Shaw
Life of this patent
Estimating the term…
Abstract
A scalable engine having multiple datapaths, each of which is a unique multi-function floating point pipeline capable of performing a four component dot product on data in a single pass through the datapath, which allows matrix transformations to be computed in an efficient manner, with a high data throughput and without substantially increasing the cost and amount of hardware required to implement the pipeline.
Claims34
A datapath for processing input data, said datapath comprising:
- at least one arithmetic pipeline, each pipeline inputting at least a portion of the input data and being controllable to perform at least one mathematical operation on the portion as it passes through the pipeline, each pipeline being capable of performing a four component dot product as the input data passes through said pipeline a single time.
A processor executing arithmetic operations on vertex data, said processor comprising:
- a data processing engine coupled to a first stage of said graphics pipeline, said processing engine comprising at least one arithmetic pipeline, each pipeline inputting at least a portion of the input data and being controllable to perform at least one mathematical operation on the portion as it passes through the pipeline, each pipeline being capable of performing a four component dot product as the input data passes through said pipeline a single time.
A graphics pipeline comprising:
- a vertex engine coupled to a first stage of said graphics pipeline, said vertex engine comprising a plurality of datapaths, each datapath inputting vertex data and being controllable to perform at least one mathematical operation on the vertex data as the data passes through the datapath, wherein each datapath is capable of performing a three component dot product as the vertex data passes through said datapath a single time.
An arithmetic pipeline comprising:
- a floating point to integer converter module, said module being controllable to convert a single precision floating point number to an integer number of selectable bit-sizes and format.
An arithmetic pipeline comprising:
- a two input adder module, said module being controllable to add a first single precision floating point number to a second single precision floating point number and to output a resulting single precision floating point number, said module comprising:
- means for inputting mantissa portions of the first and second single precision floating point numbers, said mantissa inputting means determining a larger number and a smaller number, and outputting a mantissa portion of the larger number and a mantissa portion of the smaller number;
- means for inputting exponent portions of the first and second floating point numbers, said exponent portions inputting means determining and outputting a larger exponent;
- means for inputting sign-bits of the first and second floating point numbers, said sign-bits inputting means determining and outputting a sign-bit for said resulting floating point number;
- carry-in generation means for outputting carry-in data based on sign-bits of the first and second floating point numbers and the mantissa portion of the larger number;
- addition logic receiving the carry-in data, mantissa of the larger number, mantissa of the smaller number, and a difference between the larger and smaller exponents, said addition logic shifting the mantissa of the smaller number to align with the mantissa of the larger number, calculating and outputting a normalized mantissa output and exponent modifier;
- and
- output logic receiving the sign-bit result, the normalized mantissa output and the exponent modifier, said output logic outputting the resulting single precision floating point number based on the normalized mantissa output and exponent modifier.
An arithmetic pipeline comprising:
- a flat four-input single precision floating point adder module, said module being controllable to add first, second, third and fourth single precision floating point numbers and to output a resulting single precision floating point number, said module comprising:
- means for predicting a largest number from exponent and mantissa portions of said floating point numbers, said predicting means outputting a plurality of shifting data calculated based on said largest number and said exponent portions;
- means for partially sorting said floating point numbers based on sign-bit and the exponent portions of said floating point numbers, said sorting means outputting sorted mantissas, sorted exponents, and sorted sign-bits;
- carry-in generation means for outputting carry-in data based on said sorted sign-bits and mantissas;
- addition logic receiving the carry-in data and said sorted mantissas and said plurality of shifting data, said addition logic calculating and outputting a normalized mantissa output and exponent modifier;
- and
- output logic receiving the normalized mantissa output, exponent modifier, and a largest exponent, said output logic outputting the resulting floating point number based on the normalized mantissa output, the exponent modifier, and the largest exponent.
A processor system comprising:
- a processor;
- and
- a data processing pipeline coupled to said processor, said data processing pipeline comprising at least one datapath, each datapath inputting data and being controllable to perform at least one mathematical operation on the data as the data passes through the datapath, wherein each datapath is capable of performing a four component dot product as the data passes through said datapath a single time.
A processor system comprising:
- a processor;
- and
- a graphics point pipeline coupled to said processor, said graphics pipeline comprising a vertex engine coupled to a first stage of said pipeline, said vertex engine comprising a plurality of datapaths, each datapath inputting vertex data and being controllable to perform at least one mathematical operation on the vertex data as the data passes through the datapath, wherein each datapath is capable of performing a three component dot product as the vertex data passes through said datapath a single time.
Dependencies are inferred from the claim text.