IP Library Granted Patent US 10,614,610
Granted Patent B2
US 10,614,610 · App. 16/370,493 · Granted Apr 7, 2020

Texture filtering with dynamic scheduling in computer graphics

Inventor: Casper Van Benthem (Abbots Langley, GB)
Assignee: Imagination Technolgies Limited
G06T15/04G06F9/3877G06F9/3885G06T1/20G06T15/005G06T17/10G06T17/20
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,614,610
App. No.
16/370,493
Granted
Apr 7, 2020
Kind
B2
Abstract

A texture filtering unit includes a datapath block and a control block. The datapath block includes one or more parallel computation pipelines, each containing at least one hardware logic component configured to receive a plurality of inputs and generate an output value as part of a texture filtering operation. The control block includes a plurality of sequencers and an arbiter. Each sequencer executes a micro-program that defines a sequence of operations to be performed by the one or more pipelines in the datapath block as part of a texture filtering operation and the arbiter controls access, by the sequencers, to the one or more pipelines in the datapath based on predefined prioritization rules.

Claims (34)

1. A graphics processing unit comprising a texture filtering unit implemented in hardware logic, the texture filtering unit comprising:

a plurality of inputs arranged to receive one or more texture values and a plurality of filter coefficients, the plurality of filter coefficients comprising coefficients relating to a plurality of different texture filtering methods;

a datapath block comprising one or more computation pipelines, each containing at least one hardware logic component configured to receive a plurality of inputs and generate an output value as part of a texture filtering operation; and

a control block comprising a plurality of sequencers and an arbiter,

wherein each sequencer comprises a plurality of hard-coded micro-programs and hardware logic arranged to select one of the micro-programs based on one or more control inputs, wherein each micro-program defines a sequence of operations to be performed by the pipelines in the datapath block as part of a texture filtering operation and different micro-programs implement different combinations of texture filtering methods, and

wherein the arbiter comprises hardware logic arranged to control access to the computation pipelines by the sequencers according to prioritization rules.

2. The graphics processing unit according to claim 1 , wherein each operation in the sequence of operations defined by a micro-program apart from a final operation in the sequence generates an intermediate value and the final operation in the sequence generates an output value and wherein the datapath block further comprises scratchpad registers, wherein the scratchpad registers are arranged to store the intermediate values generated by one of the computation pipelines when performing operations in a micro-program.

3. The graphics processing unit according to claim 2 , wherein the scratchpad registers comprise a set of scratchpad registers for each sequencer in the control block, wherein the set of scratchpad registers for a sequencer are arranged to store the intermediate values generated by one of the computation pipelines when performing one of the operations in the sequence defined by the selected micro-program.

4. The graphics processing unit according to claim 2 , wherein the scratchpad registers are further arranged to store an output value and wherein one of the computation pipelines comprises a bypass path that bypasses the hardware logic component within it.

5. The graphics processing unit according to claim 2 , wherein the control block outputs, for each intermediate value generated by one of the computation pipelines, a destination for the intermediate result.

6. The graphics processing unit according to claim 5 , wherein the destination for an intermediate result is a location in the scratchpad registers.

7. The graphics processing unit according to claim 1 , wherein each sequencer is arranged, when executing a selected micro-program, to send a sequence of requests for access to one of the pipelines in the datapath block to the arbiter, each request corresponding to an operation in the sequence defined by the selected micro-program, and wherein the hardware logic in the arbiter is arranged to control access to the computation pipelines by applying the prioritization rules to the requests received from the sequencers.

8. The graphics processing unit according to claim 1 , wherein the prioritization rules prioritize access for operations involving a new input texture value.

9. The graphics processing unit according to claim 1 , wherein the control block further comprises a main controller unit arranged to indicate when sequencers can start executing a micro-program and to control an order in which outputs are output, via an output, from the texture filtering unit.

10. The graphics processing unit according to claim 1 , wherein any state transitions in a micro-program are controlled based on the control inputs and not on the texture values.

11. The graphics processing unit according to claim 1 , wherein the datapath block comprises two parallel computation pipelines.

12. The graphics processing unit according to claim 11 , wherein a first of the two pipelines comprises a two-dimensional dot product unit and a second of the two pipelines comprises an addition unit.

13. The graphics processing unit according to claim 1 , wherein the datapath block comprises a plurality of parallel computation pipelines.

14. The graphics processing unit according to claim 1 , wherein the control block comprises four sequencers.

15. The graphics processing unit according to claim 1 , wherein the input texture values comprise a plurality of interleaved texture values from different streams accessed from memory at the same time.

16. A method of texture filtering within a GPU, the GPU comprising a texture filtering unit and the texture filtering unit comprising a datapath block comprising one or more computation pipelines and a control block comprising a plurality of sequencers and an arbiter, the method comprising:

selecting, in each sequencer, a micro-program based on one or more control inputs, wherein the micro-program defines a sequence of operations to be performed by the pipelines in the datapath block as part of a texture filtering operation and different micro-programs implement different combinations of texture filtering methods;

executing, in each sequencer, the selected micro-program and sending a sequence of requests for access to one of the pipelines in the datapath block to the arbiter, each request corresponding to an operation in the sequence defined by the selected micro-program; and

allocating, in the arbiter, the pipelines in the datapath block to one of the sequencers based on the requests received and prioritization rules.

17. The method according to claim 16 , further comprising:

generating, in a pipeline, an output value as part of a texture filtering operation.

18. The method according to claim 17 , wherein generating an output value as part of a texture filtering operation comprises:

generating, from each operation in the sequence of operations defined by a micro-program apart from a final operation in the sequence, an intermediate value;

generating, from the final operation in the sequence, an output value; and

storing, in scratchpad registers in the datapath block, the intermediate values.

19. The method according to claim 18 , further comprising:

in response to being unable to output an output value, storing the output value.

20. The method according to claim 19 , wherein the output value is stored in the scratchpad registers and wherein the method further comprises:

outputting the stored output value from the texture filtering unit via a bypass path in a computation pipeline, wherein the bypass path bypasses any computational logic blocks within the computational pipeline.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2019
From: VAN BENTHEM, CASPER
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 048745/0678 →
Priority Claims (1)
GB 1805637.4 · Apr 5, 2018 · national
Continuity (1)
Related Publication 20190311520A1 · Oct 10, 2019