IP Library Granted Patent US 6,985,150
Granted Patent B2
US 6,985,150 · App. 10/403,999 · Granted Jan 10, 2006

Accelerator control unit configured to manage multiple hardware contexts

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 6,985,150
App. No.
10/403,999
Granted
Jan 10, 2006
Kind
B2
Abstract

A control unit for a graphics accelerator. The control unit includes a plurality of processing pipelines, a memory (configured to store an allocation table) and a context management unit. The context management unit is configured to: (a) receive a graphics command, (b) decode a process identifier from input data provided in or with the graphics command, wherein the process identifier corresponds to one of a plurality of host processes executing on one or more central processing units external to the graphics accelerator, and (c) identify an entry E in the allocation table that corresponds to the process identifier. In response to a first set of conditions, the context management unit is further configured to: (d) reassign ownership of a first of the processing pipelines from a first active entry of the allocation table to the entry E, and (e) send the graphics command to the first processing pipeline.

Claims (45)

1. A control unit for a graphics accelerator, the control unit comprising:

a plurality of processing pipelines;

a memory configured to store central processing unit information in an allocation table, wherein said information comprises process identifiers, and wherein each process identifier identifies a specific one of one or more central processing units external to the graphics accelerator and one of a plurality of processes executing on the specific one of the central processing units; and

a context management unit configured to:

(a) receive a graphics command comprising first input data;

(b) decode a process identifier from the first input data; and

(c) identify an entry E in the allocation table that corresponds to the process identifier;

wherein, in response to a first condition, the context management unit is further configured to:

(d) reassign ownership of a first of the processing pipelines from a first active entry of the allocation table corresponding to the entry E, and

(e) send the graphics command to the first processing pipeline.

2. The control unit of claim 1 , wherein the context management unit is configured to perform (d) and (e) in response to the first condition that the entry E is inactive and that there are no unclaimed processing pipelines.

3. The control unit of claim 1 , wherein the context management unit is configured to send the graphics command to a second processing pipeline designated by a pipeline list in the entry E and not perform (d) or (e) in response to a determination that the entry E is active.

4. The control unit of claim 1 , wherein, in response to a determination that the entry E is inactive and that there is at least one unclaimed processing pipeline among the plurality of processing pipelines, the context management unit is configured to assign ownership of a first of the unclaimed processing pipelines to the entry E and not perform (d) or (e).

5. The control unit of claim 1 , wherein the context management unit is configured to reassign ownership of the first processing pipeline from the first active entry to the entry E by removing a numeric designator corresponding to the first processing pipeline from a list in the first active entry and adding said numeric designator to a list in the entry E.

6. The control unit of claim 1 , wherein the context management unit is further configured to select the first active entry from among a plurality of active entries in the allocation table on a least recently used basis.

7. The control unit of claim 1 , wherein the first input data comprises address information provided in the graphics command.

8. The control unit of claim 1 , wherein the first input data comprises data supplied with the graphics command.

9. The control unit of claim 1 , wherein the context management unit is configured to set a status flag of the entry E to indicate an active state as a part of (d).

10. The control unit of claim 1 , wherein each of the plurality of processing pipelines comprises a direct memory access controller.

11. The control unit of claim 1 , wherein each of the plurality of processing pipelines comprises a vertex processing unit configured to subdivide vertex chains into subchains.

12. The control unit of claim 1 further comprising an interconnection network coupled to each of the processing pipelines and to each of a set of render bus interfaces, wherein each of the render bus interfaces is configured to couple to a corresponding rendering pipeline, wherein the interconnection network is configured to transfer data between any of the processing pipelines and any of the render bus interfaces.

13. A method for controlling a plurality of processing pipelines in a graphics accelerator, the method comprising:

(a) receiving a graphics command comprising first input data from a central processing unit external to the graphics accelerator;

(b) decoding a process identifier from the first input data, wherein the process identifier identifies a specific one of one or more central processing units external to the graphics accelerator and one of a plurality of processes executing on the specific one of the central processing units;

(c) identifying an entry E in an allocation table that corresponds to the process identifier; and

in response to a determination of the validity of a first set of conditions, (d) reassigning ownership of a first of the processing pipelines from a first active entry of the allocation table to the entry E, (e) loading state information from a context buffer in the entry E into the first processing pipeline, (f) sending the graphics command to the first processing pipeline;

wherein each of the processing pipelines are configured to control direct memory access transfers and subdivide chains of vertices into subchains.

14. The method of claim 13 , wherein the first set of conditions comprises a first condition that the entry E is inactive and a second condition that there are no unclaimed processing pipelines.

15. The method of claim 13 further comprising sending the graphics command to a second processing pipeline designated by a pipeline list in the entry E and not performing (d), (e) and (f) in response to a determination that the entry E is active.

16. The method of claim 13 further comprising: in response to a determination that the entry E is inactive and that there is at least one unclaimed processing pipeline among the plurality of processing pipelines, assigning ownership of a first of the unclaimed processing pipelines to the entry E and not performing (d), (e) and (f).

17. The method of claim 13 , wherein said reassigning ownership of the first processing pipeline from the first active entry to the entry E comprises removing a numeric designator corresponding to the first processing pipeline from a list in the active entry and adding said numeric designator to a list in the entry E.

18. The method of claim 13 further comprising selecting the first active entry from among a plurality of active entries in the allocation table on a least recently used basis.

19. The method of claim 13 where (d) comprises setting a status flag of the entry E to indicate an active state.

20. The method of claim 13 , wherein each of the processing pipelines is further configured to perform format conversion of data provided with said graphics command.

21. A system comprising:

a plurality of means for performing pipelined processing of graphics commands in a graphics accelerator;

a means for storing central processing unit information in an allocation table, wherein said information comprises process identifiers, and wherein each process identifier identifies a specific one of one or more central processing units external to the graphics accelerator and one of a plurality of processes executing on the specific one of the central processing units; and

a means for managing hardware context for multiple processes executing on one or more central processing units, wherein the management means is configured to:

(a) receive a graphics command;

(b) decode a process identifier from the graphics command, wherein the process identifier corresponds to one of the multiple processes; and

(c) identify an entry E in the allocation table that corresponds to the process identifier;

wherein, in response to a first condition, the management means is further configured to:

(d) reassign ownership of a first of the plurality of pipelined processing means from a first active entry of the allocation table to the entry E, and

(e) send the graphics command to the first pipelined processing means.

22. The system claim 21 , wherein the management means is configured to perform (d) and (e) in response to the first condition that the entry E is inactive and that there are no unclaimed processing pipelines.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2003
From: DEERING, MICHAEL F.
To: SUN MICROSYSTEMS INC.
Reel/Frame 014244/0866 →