IP Library Granted Patent US 12,360,864
Granted Patent B2
US 12,360,864 · App. 18/377,723 · Granted Jul 15, 2025

Workload repetition redundancy

Inventors: Damien McNamara (Hertfordshire, GB); Jamie Broome (Hertfordshire, GB); Ian King (Hertfordshire, GB); Wei Shao (Hertfordshire, GB); Mario Sopena Novales (Hertfordshire, GB); Dilip Bansal (Hertfordshire, GB)
Assignee: Imagination Technologies Limited
G06F11/1633G06F9/5027G06T1/20G06F2201/82
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 12,360,864
App. No.
18/377,723
Granted
Jul 15, 2025
Kind
B2
Abstract

A graphics processing system includes a plurality of processing units, wherein the graphics processing system is configured to process a task first and second times at the plurality of processing units. Data identifying which processing unit of the plurality of processing units the task has been allocated to is consulted on allocating the task to a processing unit for processing for a second time, and, in response, the task is allocated for processing for the second time to any processing unit of the plurality of processing units other than the processing unit to which the task was allocated for processing for a first time.

Claims (31)

1. A graphics processing system comprising:

a plurality of processing units, wherein the graphics processing system is configured to process a task first and second times at the plurality of processing units;

wherein data identifying which processing unit of the plurality of processing units the task has been allocated to is consulted on allocating the task to a processing unit for processing for a second time, and, in response, the task is allocated for processing for the second time to any processing unit of the plurality of processing units other than the processing unit to which the task was allocated for processing for a first time.

2. The graphics processing system as claimed in claim 1 , wherein each processing unit is configured to process a task independently from any other processing unit of the plurality of processing units.

3. The graphics processing system as claimed in claim 1 , the graphics processing system being configured to process the task first and second times at the plurality of processing units so as to, respectively, generate first and second processed outputs, the graphics processing system further comprising a fault detection unit configured to raise a fault signal if the first and second processed outputs do not match, the graphics processing system further comprising a check unit operable to form a signature which is characteristic of an output of a processing unit on processing the task, wherein the check unit is configured to form first and second signatures which are characteristic of, respectively, the first and second processed outputs, and wherein the fault detection unit is operable to compare signatures formed at the check unit, the fault detection unit being configured to compare the first and second signatures and raise a fault signal if the first and second signatures do not match.

4. The graphics processing system as claimed in claim 3 , further comprising a data store to which the graphics processing system is configured to write one or more processed outputs in respect of the task, wherein the graphics processing system is configured to write only one of the first and second processed outputs to the data store, wherein the check unit is configured to read back processed data written to the data store in respect of the task so as to generate a further signature which is characteristic of that processed data held at the data store, and the fault detection unit is configured to compare the further signature to one or both of the first and second signatures generated by the check unit in respect of the task, the fault detection unit being configured to raise a fault signal if the further signature does not match one or both of the first and second signatures.

5. The graphics processing system as claimed in claim 3 , further comprising a data store to which the graphics processing system is configured to write one or more processed outputs in respect of the task;

wherein the graphics processing system is configured to write only one of the first and second processed outputs to the data store,

wherein the plurality of processing units, check unit and fault detection unit are provided at a graphics processing unit of the graphics processing system, and

wherein the check unit is configured to make available the first and/or second signatures to a second check unit external to the graphics processing unit, the second check unit being configured to read back processed data written to the data store by the graphics processing unit in respect of the task so as to generate a further signature characteristic of that processed data held at the data store; and

a second fault detection unit provided for the second check unit is configured to compare the further signature to one or both of the first and/or second signatures made available by the check unit in respect of the task, the second fault detection unit being configured to raise a fault signal if the further signature does not match one or both of the first and second signatures.

6. The graphics processing system as claimed in claim 1 , wherein the task is of a first type, and the graphics processing system is further configured to process a task of a second type only a first time at the plurality of processing units.

7. The graphics processing system as claimed in claim 6 , wherein the graphics processing system is configured to concurrently process the task of the first type and the task of the second type at different processing units of the graphics processing system.

8. The graphics processing system as claimed in claim 6 , wherein the task of the second type is a non-safety task which is not to be processed according to a predefined safety level.

9. The graphics processing system as claimed in claim 6 , further comprising one or more other processing units configured to process the task of the second type, the one or more other processing units being configured to process the task of the second type only a first time.

10. The graphics processing system as claimed in claim 1 , wherein the task is a safety task which is to be processed according to a predefined safety level.

11. The graphics processing system as claimed in claim 1 , wherein a first processing unit of the plurality of processing units is configured to process the task on the first time of processing, and a second processing unit of the plurality of processing units is configured to process the task on the second time of processing.

12. The graphics processing system as claimed in claim 11 , wherein the graphics processing system is configured such that the second processing unit receives the task independently to the first processing unit.

13. The graphics processing system as claimed in claim 11 , wherein the graphics processing system includes an allocation unit configured to allocate the task to the first and second processing units.

14. The graphics processing system as claimed in claim 1 , further comprising a cache configured for holding tasks for processing at the plurality of processing units, wherein the task is not removed from the cache when a processing unit retrieves the task for processing for a first time.

15. The graphics processing system as claimed in claim 1 , wherein the task includes an identifier having a least two states: an initial state indicating that the task has not been processed for a first time, and a second state indicating that the task has been processed for a first time, and wherein the graphics processing system is configured to, on processing the task for a first time, update the identifier from the initial state to the second state.

16. The graphics processing system as claimed in claim 15 , wherein a particular processing unit of the plurality of processing units is configured to, on accessing a cache of tasks at the graphics processing system, retrieve the task having an identifier in the second state only if that particular processing unit did not process the task when processed for a first time.

17. The graphics processing system as claimed in claim 1 , wherein the graphics processing system is configured to process the task first and second times at the plurality of processing units so as to, respectively, generate first and second processed outputs, and the graphics processing system further comprises a data store to which the graphics processing system is configured to write one or more processed outputs in respect of the task, wherein the graphics processing system is configured to write only one of the first and second processed outputs to the data store.

18. The graphics processing system as claimed in claim 1 , wherein each processing unit is a different physical core of a graphics processing unit of the graphics processing system.

19. A method of processing a task at a graphics processing system having a plurality of processing units, the method comprising, on receiving the task for processing:

processing the task for a first time at a first processing unit;

consulting data identifying which processing unit of the plurality of processing units the task has been allocated to on allocating the task to a processing unit for processing for a second time, and, in response, allocating the task for processing for the second time to any processing unit of the plurality of processing units other than the processing unit to which the task was allocated for processing for a first time; and

processing the task for a second time at a second processing unit.

20. A non-transitory computer readable storage medium having stored thereon a computer readable dataset description of an integrated circuit that, when processed in an integrated circuit manufacturing system, causes the integrated circuit manufacturing system to manufacture a graphics processing system comprising:

a plurality of processing units, wherein the graphics processing system is configured to process a task first and second times at the plurality of processing units;

wherein said data identifying which processing unit of the plurality of processing units the task has been allocated to is consulted on allocating the task to a processing unit for processing for a second time, and, in response, the task is allocated for processing for the second time to any processing unit of the plurality of processing units other than the processing unit to which the task was allocated for processing for a first time.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (1)
GB 1819808 · Dec 4, 2018 · national
Continuity (3)
Continuation 17674392 · Feb 17, 2022
Continuation 16703192 · Dec 4, 2019
Related Publication 20240036995A1 · Feb 1, 2024
References Cited (38)
US 6571363B1 · Steiss · 2003 [cited by applicant]
US 6615366B1 · Grochowski · 2003 [cited by applicant]
US 7941698B1 · Aggarwal et al. · 2011 [cited by applicant]
US 9892479B1 · Pruitt · 2018 [cited by applicant]
US 10754760B1 · Levy · 2020 [cited by applicant]
US 11782806B2 · McNamara · 2023 [cited by examiner]
US 20020073357A1 · Dhong et al. · 2002 [cited by applicant]
US 20020077782A1 · Fruehling et al. · 2002 [cited by applicant]
US 20050240829A1 · Safford et al. · 2005 [cited by applicant]
US 20060168434A1 · Del Vigna et al. · 2006 [cited by applicant]
US 20070277023A1 · Weiberle et al. · 2007 [cited by applicant]
US 20090182991A1 · Quach · 2009 [cited by applicant]
US 20110125997A1 · Weiberle et al. · 2011 [cited by applicant]
US 20120047351A1 · Morrison et al. · 2012 [cited by applicant]
US 20120166890A1 · Janarthanam et al. · 2012 [cited by applicant]
US 20120317576A1 · Mueller et al. · 2012 [cited by applicant]
US 20130198571A1 · Brewerton et al. · 2013 [cited by applicant]
US 20130304903A1 · Mick · 2013 [cited by examiner]
US 20140181594A1 · Sridharan et al. · 2014 [cited by applicant]
US 20140368513A1 · Lyashevsky et al. · 2014 [cited by applicant]
US 20170083998A1 · Acharya · 2017 [cited by applicant]
US 20170364332A1 · Lowell et al. · 2017 [cited by applicant]
US 20180260564A1 · Porteboeuf et al. · 2018 [cited by applicant]
US 20180267868A1 · Bose et al. · 2018 [cited by applicant]
CN 102033728A · 2011 [cited by applicant]
CN 102195968A · 2011 [cited by applicant]
CN 107222485A · 2017 [cited by applicant]
CN 107438850A · 2017 [cited by applicant]
CN 108027957A · 2018 [cited by applicant]
CN 108370252A · 2018 [cited by applicant]
CN 108776949A · 2018 [cited by applicant]
FR 2884949A1 · 2006 [cited by applicant]
GB 2431258A · 2007 [cited by applicant]
JP H08328888B · 1996 [cited by applicant]
JP 2010113388A · 2010 [cited by applicant]
JP 2016224531A · 2016 [cited by applicant]
JP 2020004108A · 2020 [cited by applicant]
Wayback Machine, “Graphics Processing Unit,” https://web.archive.org/web/20181130044722, (2018). [cited by applicant]