IP Library Granted Patent US 10,489,876
Granted Patent B2
US 10,489,876 · App. 15/193,647 · Granted Nov 26, 2019

Graphics processing architecture employing a unified shader

Inventors: Stephen L. Morein (Cambridge, MA); Laurent Lefebvre (Lachgnaie, CA); Andrew E. Gruber (Arlington, MA); Andi Skende (Shrewsbury, MA)
Assignee: ATI Technologies ULC
G06T1/20G06T15/005G06T15/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,489,876
App. No.
15/193,647
Granted
Nov 26, 2019
Kind
B2
Abstract

A graphics processing architecture in one example performs vertex manipulation operations and pixel manipulation operations by transmitting vertex data to a general purpose register block, and performing vertex operations on the vertex data by a processor unless the general purpose register block does not have enough available space therein to store incoming vertex data; and continues pixel calculation operations that are to be or are currently being performed by the processor based on instructions maintained in an instruction store until enough registers within the general purpose register block become available.

Claims (35)

1. A graphics processing system, comprising:

an arbiter circuit operative to select vertex data and pixel data from a plurality of inputs;

a unified-shader circuit, coupled to the arbiter circuit, comprising:

a register block operative to concurrently store the vertex data and the pixel data selected by the arbiter circuit;

a sequencer operative to store instructions used to perform vertex operations on the vertex data stored in the register block and pixel operations on the pixel data stored in the register block; and

a processor operative to execute floating-point operations according to the instructions stored in the sequencer,

wherein the unified-shader circuit is further operative to perform the vertex operations on the vertex data selected by the arbiter circuit and the pixel operations on the pixel data selected by the arbiter circuit; and

wherein the unified-shader circuit is further operative to, according to the instructions stored in the sequencer, perform a texture-fetch operation during the vertex operations.

2. The graphics processing system of claim 1 , further including a vertex storage block for maintaining vertex information.

3. The graphics processing system of claim 2 , wherein the vertex storage block includes a parameter cache operative to maintain appearance attribute data and a position cache operative to maintain position data.

4. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to generate a color attribute associated with the pixel data selected by the arbiter circuit.

5. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to generate a position attribute associated with the vertex data selected by the arbiter circuit.

6. The graphics processing system of claim 5 , wherein the unified-shader circuit is further operative to generate a color attribute associated with the pixel data selected by the arbiter circuit.

7. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to generate an appearance attribute that comprises at least one of the following: a color attribute, a lighting attribute, a texture attribute, a normal attribute, and a position attribute.

8. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to generate a depth value.

9. The graphics processing system of claim 1 , wherein the arbiter circuit comprises a multiplexer and an arbiter operative to provide a control signal to the multiplexer.

10. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to generate vertex position data and wherein the graphics processing system further comprises a primitive assembly operative to generate primitives from the vertex position data.

11. The graphics processing system of claim 10 , further comprising a rasterization engine, coupled to the primitive assembly, operative to generate pixel parameter data from the primitives generated by the primitive assembly.

12. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to generate color information in response to the arbiter circuit selecting the pixel data from the plurality of inputs.

13. The graphics processing system of claim 1 , wherein the unified shader circuit further comprises source registers operative to store operands provided by the register block, such that the operands are ready for execution by the processor.

14. The graphics processing system of claim 1 , wherein the unified-shader circuit is further operative to access a vertex cache to perform the texture-fetch operation during the vertex operations.

15. A graphics processing system, comprising:

an arbiter circuit operative to select vertex data and pixel data from a plurality of inputs; and

a unified-shader circuit, coupled to the arbiter circuit, comprising:

a register block operative to concurrently store the vertex data and the pixel data selected by the arbiter circuit;

a sequencer operative to store instructions used to perform the vertex operations on the vertex data stored in the register block and the pixel operations on the pixel data stored in the register block; and

a processor operative to execute floating-point operations according to the instructions stored in the sequencer,

wherein the unified-shader circuit is further operative to simultaneously perform vertex operations on the vertex data selected by the arbiter circuit and pixel operations on the pixel data selected by the arbiter circuit; and

wherein the unified-shader circuit is further operative to switch from executing the vertex operations to executing the pixel operations before the vertex operations have been completed.

16. The graphics processing system of claim 15 , wherein the sequencer is further operative to fetch data from a memory.

17. The graphics processing system of claim 15 , wherein the arbiter circuit is further operative to provide information to the register block in response to a control signal.

18. The graphics processing system of claim 17 , wherein the arbiter circuit comprises a multiplexer and an arbiter operative to provide the control signal to the multiplexer.

19. The graphics processing system of claim 15 , wherein the processor is further operative to execute instructions to generate color information in response to the arbiter circuit selecting the pixel data from the plurality of inputs.

20. The graphics processing system of claim 15 , wherein the processor is further operative to execute vertex calculations while pixel calculations are still in progress.

21. The graphics processing system of claim 15 , wherein the processor is further operative to generate position data and appearance data in response to the arbiter circuit selecting the vertex data from the plurality of inputs.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2024
From: ATI TECHNOLOGIES ULC
To: ONESTA IP, LLC
Reel/Frame 069379/0556 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2016
From: MOREIN, STEVEN; LAFEBVRE, LAURENT; GRUBER, ANDY; SKENDE, ANDI
To: ATI TECHNOLOGIES, INC.
Reel/Frame 039330/0558 →
CHANGE OF NAME Recorded Aug 3, 2016
From: ATI TECHNOLOGIES INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 039559/0349 →
Continuity (8)
Continuation 14614967 · Feb 5, 2015
Continuation 14312014 · Jun 23, 2014
Continuation 13109738 · May 17, 2011
Continuation 12791597 · Jun 1, 2010
Continuation 11842256 · Aug 21, 2007
Continuation 11117863 · Apr 29, 2005
Continuation 10718318 · Nov 20, 2003
Related Publication 20160307356A1 · Oct 20, 2016