Data processing systems

US10089709B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10089709-B2
Application numberUS-201615208459-A
CountryUS
Kind codeB2
Filing dateJul 12, 2016
Priority dateJul 15, 2015
Publication dateOct 2, 2018
Grant dateOct 2, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A graphics processing unit 3 includes a rasterizer 25 , a thread spawner 40 , a programmable execution unit 41 , a varying interpolator 42 , a texture mapper 43 , and a blender 29 . The programmable execution unit 41 is able to communicate with the varying interpolator 42 , the texture mapper 43 and the blender 29 to request processing operations by those graphic specific accelerators. In addition to this, these graphics-specific accelerators are also able to communicate directly with each other and with the thread spawner 40 , independently of the programmable execution unit 41 . This allows for certain graphics processing operations to be performed using direct communication between the graphics-specific accelerators of the graphics processing unit, instead of executing instructions in the programmable execution unit to trigger the performance of those operations by the graphics-specific accelerators.

First claim

Opening claim text (preview).

What is claimed is: 1. A processing unit comprising: a programmable execution unit operable to execute programs to perform processing operations; and a plurality of accelerators each operable to perform respective processing operations; wherein: the programmable execution unit is operable to communicate with the accelerators to cause the accelerators to perform processing operations, and to receive responses from the accelerators; two or more of the accelerators are operable to communicate directly with each other, in order to trigger processing operations by at least one of the accelerators; and further wherein: the processing unit is configured to determine for a processing entity or group of processing entities to be processed by the processing unit, whether that entity or group of entities should be processed solely by executing a program using the programmable execution unit for that entity or group of entities, or whether that entity or group of entities should be processed solely by means of direct communication between the accelerators, or whether that entity or group of entities should be processed both by executing a program using the programmable execution unit for that entity or group of entities and by means of direct communication between the accelerators; and the processing unit comprises processing circuitry configured to: when it is determined that a processing entity or entities is to be processed by executing a program using the programmable execution unit, issue an execution thread or threads for execution by the programmable execution unit in order to trigger processing operations for the entity or entities; when it is determined that a processing entity or entities is to be processed by means of direct communication between the accelerators, issue a message directly to one or more of the accelerators, in order to trigger processing operations for the entity or entities; and when it is determined that a processing entity or entities is to be processed both by executing a program using the programmable execution unit for the entity or group of entities and by means of direct communication between the accelerators, issue an execution thread or threads for execution by the programmable execution unit in order to trigger processing operations for the entity or entities, and issue a message directly to one or more of the accelerators, in order to trigger processing operations for the entity or entities. 2. The processing unit of claim 1 , wherein: the processing unit is a graphics processing unit; the accelerators include a varying interpolator, a texture mapper and a blender; and the varying interpolator can communicate directly with the texture mapper to request texturing operations, and/or the texture mapper can communicate directly with the blender to request blending operations. 3. The processing unit of claim 1 , wherein there is a set of programs that are predefined as being suitable to be performed using direct communication between the accelerators. 4. The processing unit of claim 1 , wherein: the processing entity or entities comprise a graphics fragment or fragments; and the determination is based on one or more of: whether the fragment to be processed has full coverage; whether the fragment to be processed has an allocated tile buffer; and whether the fragment to be processed is the oldest at its position in the render output. 5. The processing unit of claim 1 , wherein the programmable execution unit is operable to be able to issue a message or messages to one or more of the accelerators that will then cause the accelerators to communicate directly with each other to perform processing operations. 6. The processing unit of claim 5 , wherein the programmable execution unit is operable to issue a message or messages to one or more of the accelerators that will then cause the accelerators to communicate directly with each other to perform processing operations in response to an instruction in a program that it is executing. 7. A method of performing processing operations in a processing unit that comprises: a programmable execution unit operable to execute programs to perform processing operations; and a plurality of accelerators each operable to perform respective processing operations; and in which: the programmable execution unit is operable to communicate with the accelerators to cause the accelerators to perform processing operations, and to receive responses from the accelerators; and two or more of the accelerators are operable to communicate directly with each other, in order to trigger processing operations by at least one of the accelerators; the method comprising: the processing unit: determining for a processing entity or group of processing entities to be processed by the processing unit, whether that entity or group of entities should be processed solely by executing a program using the programmable execution unit for that entity or group of entities, or whether that entity or group of entities should be processed solely by means of direct communication between the accelerators, or whether that entity or group of entities should be processed both by executing a program using the programmable execution unit for that entity or group of entities and by means of direct communication between the accelerators; when it is determined that a processing entity or entities is to be processed by executing a program using the programmable execution unit, issuing an execution thread or threads for execution to the programmable execution unit in order to trigger processing operations for the entity or entities; when it is determined that a processing entity or entities is to be processed by means of direct communication between the accelerators, issuing a message directly to one or more of the accelerators, in order to trigger processing operations for the entity or entities; and when it is determined that a processing entity or entities is to be processed, both by executing a program using the programmable execution unit for that entity or group of entities and by means of direct communication between the accelerators, issuing an execution thread or threads for execution to the programmable execution unit in order to trigger processing operations for the entity or entities, and issuing a message directly to one or more of the accelerators in order to trigger processing operations for the entity or entities. 8. The method of claim 7 , wherein: the processing unit is a graphics processing unit; the accelerators include a varying interpolator, and a texture mapper; and the method comprises: the varying interpolator communicating directly with the texture mapper to request texturing operations. 9. The method of claim 7 , wherein: the processing unit is a graphics processing unit; the accelerators include a texture mapper and a blender; and the method comprises: the texture mapper communicating directly with the blender to request blending operations. 10. The method of claim 7 , wherein there is a set of programs that are predefined as being suitable to be performed using direct communication between the accelerators. 11. The method of claim 7 , wherein: the processing entity or entities comprise a graphics fragment or fragments; and the determination is based on one or more of: whether the fragment to be processed has full coverage; whether the fragment to be processed has an allocated tile buffer; and whether the fragment to be processed is the oldest at its position in the render output. 12. The method of claim 7 , comprising the programmable execution unit issuing a message to one of the accelera

Assignees

Inventors

Classifications

  • General purpose rendering architectures · CPC title

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12) · CPC title

  • Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes · CPC title

  • Texture mapping · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10089709B2 cover?
A graphics processing unit 3 includes a rasterizer 25 , a thread spawner 40 , a programmable execution unit 41 , a varying interpolator 42 , a texture mapper 43 , and a blender 29 . The programmable execution unit 41 is able to communicate with the varying interpolator 42 , the texture mapper 43 and the blender 29 to request processing operations by those graphic specific acceler…
Who is the assignee on this patent?
Advanced Risc Mach Ltd
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 02 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).