US 12,147,839 B2
CPU cluster shared resource management
John G. Dorsey, San Francisco, CA (US); Bryan R. Hinch, Campbell, CA (US); Ronit Banerjee, Cupertino, CA (US); Kushal Dalmia, Santa Clara, CA (US); Daniel A. Chimene, San Francisco, CA (US); and Jaidev P. Patwardhan, Mountain View, CA (US)
Assigned to Apple Inc., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on Aug. 3, 2021, as Appl. No. 17/392,929.
Prior Publication US 2023/0040310 A1, Feb. 9, 2023
Int. Cl. G06F 9/50 (2006.01); G06F 9/48 (2006.01); G06F 11/14 (2006.01)
CPC G06F 9/5044 (2013.01) [G06F 9/4881 (2013.01); G06F 9/5088 (2013.01); G06F 9/4887 (2013.01); G06F 11/141 (2013.01); G06F 2209/501 (2013.01); G06F 2209/5018 (2013.01); G06F 2209/505 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method of operating a computing system comprising a first central processing unit (CPU) cluster and a second CPU cluster, wherein the first CPU cluster comprises first CPU cores that can access a first shared resource comprising a Bus Interface Unit (BIU), and the second CPU cluster comprises second CPU cores that can access a second shared resource, the method comprising:
determining a ratio wherein a numerator comprises: a number of BIU cycles in which a request queue of the BIU is full, and a denominator comprises: a count of total BIU cycles;
filtering the ratio for hysteresis;
comparing an output of the filtering against a tunable threshold;
determining that the BIU is overloaded based at least on the comparison;
determining that a first thread running on a first CPU core of the first CPU cores uses the first shared resource comprising the BIU that has experienced an overload, wherein the overload is based at least on a load-store unit (LSU) micro-operations level metric of the first CPU cluster;
setting a thread flag of the first thread based at least on the determination that the first thread uses the first shared resource that has experienced the overload; and
running the first thread on a second CPU core of the second CPU cores, based at least on the thread flag.