IP Library Granted Patent US 11,361,399
Granted Patent B2
US 11,361,399 · App. 17/167,717 · Granted Jun 14, 2022

Multi-thread graphics processing system

Inventors: Laurent Lefebvre (Lachenaie, CA); Andrew Gruber (Arlington, MA); Stephen Morein (Cambridge, MA)
Assignee: ATI Technologies ULC
G06T1/20G06F9/3851G06T1/60G06T15/005G06T15/04G09G5/001G09G5/363
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 11,361,399
App. No.
17/167,717
Granted
Jun 14, 2022
Kind
B2
Abstract

A graphics processing system comprises at least one memory device storing a plurality of pixel command threads and a plurality of vertex command threads. An arbiter coupled to the at least one memory device is provided that selects a pixel command thread from the plurality of pixel command threads and a vertex command thread from the plurality of vertex command threads. The arbiter further selects a command thread from the previously selected pixel command thread and the vertex command thread, which command thread is provided to a command processing engine capable of processing pixel command threads and vertex command threads.

Claims (34)

1. A graphics processing system comprising:

a pixel reservoir portion including a first pixel memory device and a second pixel memory device, and operative to store a pixel command thread across the first pixel memory device and the second pixel memory device;

a vertex reservoir portion including a first vertex memory device and a second vertex memory device, and operative to store a vertex command thread across the first vertex memory device and the second vertex memory device;

an arbiter circuit, coupled to the pixel reservoir portion and the vertex reservoir portion, operative to select at least one of the pixel command thread or the vertex command thread;

an arithmetic logic unit (ALU), coupled to the arbiter circuit, operable to execute the at least one of the pixel command thread or the vertex command thread, wherein the arbiter circuit is further operable to provide the at least one of the pixel command thread or the vertex command thread to the ALU;

a render backend, coupled to the ALU, for rendering an output of the ALU; and

a scan converter, coupled to the ALU, for processing the output of the ALU.

2. The graphics processing system of claim 1 , further comprising a graphics processing engine, coupled to the arbiter circuit, operable to execute the at least one of the pixel command thread or the vertex command thread, wherein the arbiter circuit is further operable to provide the at least one of the pixel command thread or the vertex command thread to the graphics processing engine.

3. The graphics processing system of claim 2 , wherein the first vertex memory device comprises a status bit for the vertex command thread, and the arbiter circuit is further operable to allocate the vertex command thread and the pixel command thread to the ALU or the graphics processing engine based upon the status bit.

4. The graphics processing system of claim 3 , wherein the status bit includes at least one of a valid thread bit, a texture engine/ALU engine needed bit, a texture reads are outstanding bit, or a waiting on texture read to complete bit.

5. The graphics processing system of claim 2 , wherein the first pixel memory device comprises a status bit for the pixel command thread, and the arbiter circuit is further operable to allocate the vertex command thread and the pixel command thread to the ALU or the graphics processing engine based upon the status bit.

6. The graphics processing system of claim 5 , wherein the status bit includes at least one of a valid thread bit, a texture engine/ALU engine needed bit, a texture reads are outstanding bit, or a waiting on texture read to complete bit.

7. The graphics processing system of claim 2 , wherein the graphics processing engine is further operable to return the at least one of the pixel command thread and the vertex command thread to the pixel reservoir portion or the vertex reservoir portion.

8. The graphics processing system of claim 1 , wherein the ALU is further operable to return the at least one of the pixel command thread and the vertex command thread to the pixel reservoir portion or the vertex reservoir portion.

9. The graphics processing system of claim 1 , wherein the first pixel memory device is physically separate from the second pixel memory device, and the first vertex memory device is physically separate from the second vertex memory device.

10. The graphics processing system of claim 1 , wherein at least one of the first pixel memory device or the first vertex memory device includes a multi-read port device.

11. The graphics processing system of claim 1 , wherein at least one of the second pixel memory device or the second vertex memory device includes a one read port device.

12. The graphics processing system of claim 1 , wherein the second pixel memory device comprises at least one state bit for the pixel command thread, the at least one state bit including at least one of a control flow instruction pointer, a loop iterator, a call return pointer, predicated bits, a GPR base pointer, a context pointer, or valid bits.

13. The graphics processing system of claim 1 , wherein the second vertex memory device comprises at least one state bit for the vertex command thread, at least one the state bit including at least one of a control flow instruction pointer, a loop iterator, a call return pointer, predicated bits, a GPR base pointer, a context pointer, or valid bits.

14. A graphics processing system comprising:

a pixel reservoir portion including a first pixel memory device and a second pixel memory device, and operative to store a pixel command thread across a first pixel memory device and a second pixel memory device;

a vertex reservoir portion including a first vertex memory device and a second vertex memory device, and operative to store a vertex command thread across a first vertex memory device and a second vertex memory device;

an arbiter circuit, coupled to the pixel reservoir portion and the vertex reservoir portion, operative to retrieve a selected command thread from either the pixel command thread or the vertex command thread;

an arithmetic logic unit (ALU), coupled to the arbiter circuit, operable to receive and process the selected command thread;

a render backend, coupled to the ALU, for rendering an output of the ALU; and

a scan converter, coupled to the ALU, for processing the output of the ALU.

15. The graphics processing system of claim 14 , further comprising a graphics processing engine, coupled to the arbiter circuit, operable to receive and process the selected command thread.

16. The graphics processing system of claim 15 , wherein the arbiter circuit is further operable to:

determine a status bit of the selected command thread, the status bit located in the first pixel memory device or the first vertex memory device; and

allocate, for execution, the selected command thread to the ALU or the graphics processing engine based at least in part on the status bit.

17. The graphics processing system of claim 16 , wherein the status bit includes at least one of a valid thread bit, a texture engine/ALU engine needed bit, a texture reads are outstanding bit, or a waiting on texture read to complete bit.

18. The graphics processing system of claim 14 , wherein the first pixel memory device includes a multi-read port device.

19. The graphics processing system of claim 14 , wherein the first vertex memory device includes a multi-read port device.

20. The graphics processing system of claim 14 , wherein the first pixel memory device is physically separated from the second pixel memory device, and the first vertex memory device is physically separate from the second vertex memory device.

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 Feb 12, 2021
From: LEFEBVRE, LAURENT; GRUBER, ANDREW E.; MOREIN, STEPHEN L.
To: ATI TECHNOLOGIES, INC.
Reel/Frame 055242/0928 →
CHANGE OF NAME Recorded Feb 12, 2021
From: ATI TECHNOLOGIES, INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 055293/0730 →