Programmable shader having register forwarding for reduced register-file bandwidth consumption
First Claim
Patent Images
1. A shader, comprising:
- a processing engine for processing data, the processing engine having a plurality of serially connected processing stations in which an output of each of the plurality of serially connected processing stations is an input to another of the plurality of serially connected processing stations; and
a shader register file directly connected only to a first processing station in the plurality of serially connected processing stations and to no other processing station in the shader or processing engine,wherein the processing engine is configured to forward results to the shader register file through the first processing station by following a set of rules, including a first rule that a shader register write is performed for a first instruction when a second instruction that immediately follows the first instruction is a serialized instruction, and, a second rule that a shader register read is performed for a third instruction that immediately follows the second instruction,wherein the shader register file can only store data received directly from the first processing station, andwherein the shader register file can only send stored data directly to the first processing station.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus of operating a shader having multiple texture or shader processing stations. That method includes feeding the output of a texture or shader processing station directly into the input of another texture or shader processing station. Further, only a subset of the processing stations has access to a shader register file.
41 Citations
22 Claims
-
1. A shader, comprising:
-
a processing engine for processing data, the processing engine having a plurality of serially connected processing stations in which an output of each of the plurality of serially connected processing stations is an input to another of the plurality of serially connected processing stations; and a shader register file directly connected only to a first processing station in the plurality of serially connected processing stations and to no other processing station in the shader or processing engine, wherein the processing engine is configured to forward results to the shader register file through the first processing station by following a set of rules, including a first rule that a shader register write is performed for a first instruction when a second instruction that immediately follows the first instruction is a serialized instruction, and, a second rule that a shader register read is performed for a third instruction that immediately follows the second instruction, wherein the shader register file can only store data received directly from the first processing station, and wherein the shader register file can only send stored data directly to the first processing station. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer system, comprising:
-
a central processing unit for running an application program; and a graphics processing unit responsive to the central processing unit, the graphics processing unit for processing data in accord with the application program, the graphics processing unit including a shader comprising; a processing engine for processing data in accord with the application program, the processing engine having a plurality of serially connected processing stations in which an output of each of the plurality of serially connected processing stations is an input to another of the plurality of serially connected processing stations; and a shader register file directly connected only to a first processing station in the plurality of serially connected processing stations and to no other processing station in the shader or processing engine, wherein each one of the processing stations is configured to forward results to the shader register file through the first processing station by following a set of rules, including a first rule that a shader register write is performed for a first instruction when a second instruction that immediately follows the first instruction is a serialized instruction, and, a second rule that a shader register read is performed for a third instruction that immediately follows the second instruction, wherein the shader register file can only store data received directly from the first processing station, and wherein the shader register file can only send stored data directly to the first processing station. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A graphics processing integrated circuit, comprising:
-
a front end for receiving raw graphic data; a geometry engine for organizing the raw graphics data into geometric primitives; a rasterizer for converting the geometric primitives into rasterized pixel data; and a shader for shading the rasterized pixel data, the shader comprising; a processing engine for processing the rasterized pixel data, the processing engine having a plurality of serially connected processing stations in which an output of each of the plurality of serially connected processing stations is an input to another of the plurality of serially connected processing stations; and a shader register file directly connected only to a first processing station in the plurality of serially connected processing stations and to no other processing station in the shader or processing engine, wherein each one of the processing stations is configured to forward results to the shader register file through the first processing station by following a set of rules, including a first rule that a shader register write is performed for a first instruction when a second instruction that immediately follows the first instruction is a serialized instruction, and, a second rule that a shader register read is performed for a third instruction that immediately follows the second instruction, wherein the shader register file can only store the rasterized pixel data received directly from the first processing station, and wherein the shader register file can only send stored rasterized pixel data directly to the first processing station. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method of operating a shader, comprising the steps of:
-
receiving data in a first processing station; processing the received data in the first processing station; sending the processing results of the first processing station directly to a second processing station; processing the processing results of the first processing station in the second processing station; sending the processing results of the second processing station directly to a third processing station; processing the processing results of the second processing station in the third processing station; forwarding the processing results of the second processing station through the third processing station to the first processing station based on a set of rules, including a first rule that a shader register write is performed for a first instruction when a second instruction that immediately follows the first instruction is a serialized instruction, and, a second rule that a shader register read is performed for a third instruction that immediately follows the second instruction; and selectively storing the processing results of the second processing station in the shader register file, wherein the shader register file is directly coupled to the first processing station. - View Dependent Claims (21, 22)
-
Specification