IP Library Patent Application 18155555
Patent Application
App. No. 18/155,555

THROTTLING SCHEMES IN MULTICORE MICROPROCESSORS

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 None
App. No.
18/155,555
Abstract

An electronic device includes a cache, a processing cluster having one or more processors, and prefetch throttling circuitry that determines a congestion level of the processing cluster based on an extent to which the data retrieval requests sent from the processors to the cache are not satisfied by the cache. Congestion criteria require that the congestion level of the cluster is above a cluster congestion threshold. In accordance with a determination that the congestion level of the cluster satisfies the congestion criteria, the prefetch throttling circuit causes one of the processors to limit prefetch requests to the cache to prefetch requests of at least a threshold quality. In accordance with a determination that the congestion level of the cluster does not satisfy the congestion criteria, the prefetch throttling circuit forgoes causing the processors to limit prefetch requests to the cache to prefetch requests of at least the threshold quality.

Claims (61)

1 . An electronic device, comprising:

a plurality of processing clusters, each including one or more respective processors;

a first memory coupled to the plurality of processing clusters;

a second memory coupled to the plurality of processing clusters, wherein the second memory is configured to receive data retrieval requests from the plurality of processing clusters to the first memory that are not satisfied by the first memory; and

prefetch throttling circuitry coupled to the one or more respective processors in each of the plurality of processing clusters;

wherein:

the electronic device is configured to:

obtain a current congestion level of the first memory based on a number of outstanding in-flight requests received by the first memory, and maintain a first congestion level history that includes the obtained current congestion level of the first memory; and

obtain a current congestion level of the second memory based on a number of outstanding in-flight requests received by the second memory, and maintain a second congestion level history that includes the obtained current congestion level of the second memory; and

the prefetch throttling circuitry is configured to cause a respective processing cluster to limit prefetch requests from the respective processing cluster based on at least one of the obtained current congestion level of the first memory and the obtained current congestion level of the second memory.

2 . The electronic device of claim 1 , wherein the prefetch throttling circuitry is configured to determine a respective throttling level, of a plurality of throttling levels, for the respective processing cluster based on a congestion level of the respective processing cluster.

3 . The electronic device of claim 2 , configured to determine a combined system congestion level based on the obtained current congestion level of the first memory and the obtained current congestion level of the second memory, wherein the prefetch throttling circuitry is configured to determine the respective throttling level for the respective processing cluster based on comparing the congestion level of the respective processing cluster to one or more cluster congestion thresholds that are determined based on the combined system congestion level.

4 . The electronic device of claim 3 , wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to limit prefetch requests to prefetch requests of at least a respective threshold quality that corresponds to the respective throttling level for the respective processing cluster and is determined based on the combined system congestion level.

5 . The electronic device of claim 1 , wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to limit prefetch requests from the respective processing cluster in accordance with a highest throttling level based on the first congestion level history of the first memory.

6 . The electronic device of claim 5 , wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to limit prefetch requests from the respective processing cluster based on a subset of the first congestion level history and on the second congestion level history.

7 . The electronic device of claim 1 , wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to limit prefetch requests from the respective processing cluster in accordance with a highest throttling level based on a determination that the first congestion level history includes more than a first threshold number of determined congestion levels indicating a respective congestion level of the first memory.

8 . The electronic device of claim 7 , wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to forgo limiting prefetch requests from the respective processing cluster in accordance with the highest throttling level based on a determination that the first congestion level history includes less than a second threshold number of determined congestion levels indicating the respective congestion level of the first memory.

9 . The electronic device of claim 5 , wherein limiting prefetch requests from the respective processing cluster in accordance with the highest throttling level includes limiting all prefetch requests from the respective processing cluster.

10 . The electronic device of claim 1 , configured to:

determine a first congestion level of the first memory, including:

in accordance with a determination that the obtained current congestion level of the first memory indicates a higher congestion level than the first congestion level, increase the first congestion level; and

in accordance with a determination that the first congestion level history indicates a lower congestion level than the first congestion level, decrease the first congestion level; and

determine a second congestion level of the second memory, including:

in accordance with a determination that the obtained current congestion level of the second memory indicates a higher congestion level than the second congestion level, increase the second congestion level; and

in accordance with a determination that the second congestion level history indicates a lower congestion level than the second congestion level, decrease the second congestion level;

wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to limit prefetch requests from the respective processing cluster based on the first congestion level and the second congestion level.

11 . A data caching method, comprising:

at an electronic device including a plurality of processing clusters, a first memory coupled to the plurality of processing clusters, a second memory coupled to the plurality of processing clusters, and prefetch throttling circuitry coupled to one or more respective processors in each of the plurality of processing clusters, wherein the second memory is configured to receive data retrieval requests from the plurality of processing clusters to the first memory that are not satisfied by the first memory:

obtaining a current congestion level of the first memory based on a number of outstanding in-flight requests received by the first memory, and maintaining a first congestion level history that includes the obtained current congestion level of the first memory;

obtaining a current congestion level of the second memory based on a number of outstanding in-flight requests received by the second memory, and maintaining a second congestion level history that includes the obtained current congestion level of the second memory; and

causing a respective processing cluster to limit prefetch requests from the respective processing cluster based on at least one of the obtained current congestion level of the first memory and the obtained current congestion level of the second memory.

12 . The method of claim 11 , further comprising, at the prefetch throttling circuitry:

determining a respective throttling level, of a plurality of throttling levels, for the respective processing cluster based on a congestion level of the respective processing cluster.

13 . The method of claim 12 , further comprising:

determining a combined system congestion level based on the obtained current congestion level of the first memory and the obtained current congestion level of the second memory, wherein the prefetch throttling circuitry is configured to determine the respective throttling level for the respective processing cluster based on comparing the congestion level of the respective processing cluster to one or more cluster congestion thresholds that are determined based on the combined system congestion level.

14 . The method of claim 13 , further comprising, at the prefetch throttling circuitry:

causing the respective processing cluster to limit prefetch requests to prefetch requests of at least a respective threshold quality that corresponds to the respective throttling level for the respective processing cluster and is determined based on the combined system congestion level.

15 . The method of claim 11 , further comprising, at the prefetch throttling circuitry:

causing the respective processing cluster to limit prefetch requests from the respective processing cluster in accordance with a highest throttling level based on the first congestion level history of the first memory.

16 . The method of claim 15 , further comprising, at the prefetch throttling circuitry:

causing the respective processing cluster to limit prefetch requests from the respective processing cluster based on a subset of the first congestion level history and on the second congestion level history.

17 . The method of claim 11 , further comprising, at the prefetch throttling circuitry:

causing the respective processing cluster to limit prefetch requests from the respective processing cluster in accordance with a highest throttling level based on a determination that the first congestion level history includes more than a first threshold number of determined congestion levels indicating a respective congestion level of the first memory.

18 . The method of claim 17 , further comprising, at the prefetch throttling circuitry:

causing the respective processing cluster to forgo limiting prefetch requests from the respective processing cluster in accordance with the highest throttling level based on a determination that the first congestion level history includes less than a second threshold number of determined congestion levels indicating the respective congestion level of the first memory.

19 . The method of claim 15 , wherein limiting prefetch requests from the respective processing cluster in accordance with the highest throttling level includes limiting all prefetch requests from the respective processing cluster.

20 . The method of claim 11 , further comprising:

determining a first congestion level of the first memory, including:

in accordance with a determination that the obtained current congestion level of the first memory indicates a higher congestion level than the first congestion level, increasing the first congestion level; and

in accordance with a determination that the first congestion level history indicates a lower congestion level than the first congestion level, decreasing the first congestion level; and

determining a second congestion level of the second memory, including:

in accordance with a determination that the obtained current congestion level of the second memory indicates a higher congestion level than the second congestion level, increasing the second congestion level; and

in accordance with a determination that the second congestion level history indicates a lower congestion level than the second congestion level, decreasing the second congestion level;

wherein the prefetch throttling circuitry is configured to cause the respective processing cluster to limit prefetch requests from the respective processing cluster based on the first congestion level and the second congestion level.

21 . An electronic device, comprising:

a plurality of processing clusters, each including one or more respective processors;

a first memory coupled to the plurality of processing clusters;

a second memory coupled to the plurality of processing clusters, wherein the second memory is configured to receive data retrieval requests from the plurality of processing clusters to the first memory that are not satisfied by the first memory;

means for obtaining a current congestion level of the first memory based on a number of outstanding in-flight requests received by the first memory, and maintaining a first congestion level history that includes the obtained current congestion level of the first memory;

means for obtaining a current congestion level of the second memory based on a number of outstanding in-flight requests received by the second memory, and maintaining a second congestion level history that includes the obtained current congestion level of the second memory; and

means for causing a respective processing cluster to limit prefetch requests from the respective processing cluster based on at least one of the obtained current congestion level of the first memory and the obtained current congestion level of the second memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2023
From: KUMAR, AMIT; BLASCO, CONRADO
To: NUVIA, INC.
Reel/Frame 062404/0357 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2023
From: NUVIA, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 062404/0399 →