US 11,816,506 B2
Core targeting in heterogeneous multiprocessor systems
Michael Cieslak, Los Angeles, CA (US); Jiayao Yu, Venice, CA (US); Kai Chen, Manhattan Beach, CA (US); Farnaz Azmoodeh, Venice, CA (US); Michael David Marr, Monroe, WA (US); Jun Huang, Beverly Hills, CA (US); and Zahra Ferdowsi, Marina del Rey, CA (US)
Assigned to Snap Inc., Santa Monica, CA (US)
Filed by Michael Cieslak, Los Angeles, CA (US); Jiayao Yu, Venice, CA (US); Kai Chen, Manhattan Beach, CA (US); Farnaz Azmoodeh, Venice, CA (US); Michael David Marr, Monroe, WA (US); Jun Huang, Beverly Hills, CA (US); and Zahra Ferdowsi, Marina del Rey, CA (US)
Filed on Dec. 30, 2021, as Appl. No. 17/565,776.
Application 17/565,776 is a continuation of application No. 16/427,285, filed on May 30, 2019, granted, now 11,275,623.
Prior Publication US 2022/0121492 A1, Apr. 21, 2022
Int. Cl. G06F 9/50 (2006.01); G06F 11/34 (2006.01); G06F 11/30 (2006.01)
CPC G06F 9/505 (2013.01) [G06F 9/5094 (2013.01); G06F 11/3024 (2013.01); G06F 11/3433 (2013.01); G06F 2209/501 (2013.01); G06F 2209/508 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for adjusting workload of an application to improve processor core usage within a heterogeneous multiprocessor system of a device, the heterogeneous multiprocessor system comprising a first processor core having a first performance level and a second processor core having a second performance level lower than the first performance level, the method comprising:
monitoring usage of the first processor core and the second processor core by tasks of the application requiring the first performance level and the second performance level;
determining which features of the application require the first performance level and which features of the application may perform at the second performance level;
identifying a target processor core usage for tasks executing the features of the application of the first performance level and the second performance level from predefined processor core targets matching the first performance level and the second performance level; and
adjusting a workload of the first processor core and the second processor core to match actual processor core usage of the first processor core and the second processor core with target processor core usage for the first processor core and the second processor core,
wherein adjusting the workload comprises assigning tasks of the application based on the performance level required by the task and whether a workload for the first processor core and the second processor core is to be increased or decreased to match the target processor core usage.