| CPC G06F 9/3836 (2013.01) [G06F 9/3851 (2013.01); G06F 9/3888 (2023.08)] | 20 Claims |

|
1. A method of operating a data processor in which execution threads may execute program instructions to perform processing operations, the data processor comprising:
an execution unit operable to execute instructions in a program to be executed to perform processing operations for execution threads executing the program; and
a cache operable to store data values for use when executing instructions to perform processing operations for execution threads;
the method comprising:
when the execution unit is executing a program comprising a set of one or more instructions for a plurality of execution threads:
monitoring the operation of the cache during execution of the program for the plurality of execution threads; and
controlling the issuing of instructions for execution threads of the plurality of execution threads to the execution unit for executing the program based on the monitoring of the operation of the cache during execution of the program for the plurality of execution threads,
wherein the data processor and the execution unit are configured to execute programs for groups of plural execution threads together, and the controlling of the issuing of instructions for execution threads for execution by the execution unit comprises controlling the number of thread groups for which instructions are issued for execution by the execution unit, comprising stalling the issuing of one or more new thread groups for execution when it is determined that the cache operation monitoring indicates that the cache is in a particular cache operating state, and provided it is determined that the stalling the issuing of one or more thread groups will not cause the number of thread groups to fall below a minimum thread group count.
|