Cache contention management on a multicore processor based on the degree of contention exceeding a threshold
First Claim
1. A computer-implemented method for cache contention handling, the method comprising:
- concurrently executing a first software application on a first core of a multicore processor and a second software application on a different, second core of the multicore processor, the first core and the second core sharing a cache memory of the multicore processor, wherein the first core is arranged to access the shared cache memory when a private cache memory of the first core is unavailable, wherein the second core is arranged to access the shared cache memory when a private cache memory of the second core is unavailable;
identifying that a first number of cache misses by the first software application to the shared cache memory occurred over a first time period during the concurrent execution of the first software application and the second software application on the first core and the second core of the multicore processor, respectively;
identifying that a second number of cache misses by the second software application to the shared cache memory occurred over the first time period;
determining, based on the first number of cache misses by the first software application and the second number of cache misses by the second software application to the shared cache memory over the first time period, that a degree of contention for the shared cache memory among the first software application and the second software application during the first time period exceeds a threshold degree of contention;
accessing data that indicates execution of the first software application on the multicore processor is to be prioritized over execution of the second software application on the multicore processor so as to minimize latency in responding to user inputs directed to the first software application; and
in response to determining that the degree of contention for the shared cache memory during the first time period exceeds the threshold degree of contention, adjusting continued execution of the second software application on the second core so as to reduce the degree of contention for the shared cache memory among the first software application and the second software application, wherein the second software application is chosen for adjusted execution rather than the first software application based on the data that indicates execution of the first software application is to be prioritized over execution of the second software application.
2 Assignments
0 Petitions
Accused Products
Abstract
A first indicator of a first number of cache misses to a cache memory of a multicore processor for a first application over a first time period is received. The first application executes on a first core of the processor and a second application simultaneously executes on a second core of the processor during the first time period. The first and second cores share the cache memory. A second indicator of a second number of cache misses to the cache memory for the first application over a second time period is received. During the second time period, the first application executes on the first core and the second application does not execute on the second core. A degree of contention among the first and second applications is determined based on the first and second indicators, and execution of the second application is adjusted based on the determined degree of contention.
41 Citations
17 Claims
-
1. A computer-implemented method for cache contention handling, the method comprising:
-
concurrently executing a first software application on a first core of a multicore processor and a second software application on a different, second core of the multicore processor, the first core and the second core sharing a cache memory of the multicore processor, wherein the first core is arranged to access the shared cache memory when a private cache memory of the first core is unavailable, wherein the second core is arranged to access the shared cache memory when a private cache memory of the second core is unavailable; identifying that a first number of cache misses by the first software application to the shared cache memory occurred over a first time period during the concurrent execution of the first software application and the second software application on the first core and the second core of the multicore processor, respectively; identifying that a second number of cache misses by the second software application to the shared cache memory occurred over the first time period; determining, based on the first number of cache misses by the first software application and the second number of cache misses by the second software application to the shared cache memory over the first time period, that a degree of contention for the shared cache memory among the first software application and the second software application during the first time period exceeds a threshold degree of contention; accessing data that indicates execution of the first software application on the multicore processor is to be prioritized over execution of the second software application on the multicore processor so as to minimize latency in responding to user inputs directed to the first software application; and in response to determining that the degree of contention for the shared cache memory during the first time period exceeds the threshold degree of contention, adjusting continued execution of the second software application on the second core so as to reduce the degree of contention for the shared cache memory among the first software application and the second software application, wherein the second software application is chosen for adjusted execution rather than the first software application based on the data that indicates execution of the first software application is to be prioritized over execution of the second software application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing system including a multicore processor that is adapted for cache contention handling, the computing system configured to perform operations comprising:
-
concurrently executing a first software application on a first core of the multicore processor and a second software application on a different, second core of the multicore processor, the first core and the second core sharing a cache memory of the multicore processor, wherein the first core is arranged to access the shared cache memory when a private cache memory of the first core is unavailable, wherein the second core is arranged to access the shared cache memory when a private cache memory of the second core is unavailable; identifying that a first number of cache misses by the first software application to the shared cache memory occurred over a first time period during the concurrent execution of the first software application and the second software application on the first core and the second core of the multicore processor, respectively; identifying that a second number of cache misses by the second software application to the shared cache memory occurred over the first time period; determining, based on the first number of cache misses by the first software application and the second number of cache misses by the second software application to the shared cache memory over the first time period, that a degree of contention for the shared cache memory among the first software application and the second software application during the first time period exceeds a threshold degree of contention; accessing data that indicates execution of the first software application on the multicore processor is to be prioritized over execution of the second software application on the multicore processor so as to minimize latency in responding to user inputs directed to the first software application; and in response to determining that the degree of contention for the shared cache memory during the first time period exceeds the threshold degree of contention, adjusting continued execution of the second software application on the second core so as to reduce the degree of contention for the shared cache memory among the first software application and the second software application, wherein the second software application is chosen for adjusted execution rather than the first software application based on the data that indicates execution of the first software application is to be prioritized over execution of the second software application. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. One or more non-transitory computer-readable media having instructions stored thereon that, when executed by one or more computers, cause performance of operations comprising:
-
concurrently executing a first software application on a first core of a multicore processor and a second software application on a different, second core of the multicore processor, the first core and the second core sharing a cache memory of the multicore processor, wherein the first core is arranged to access the shared cache memory when a private cache memory of the first core is unavailable, wherein the second core is arranged to access the shared cache memory when a private cache memory of the second core is unavailable; identifying that a first number of cache misses by the first software application to the shared cache memory occurred over a first time period during the concurrent execution of the first software application and the second software application on the first core and the second core of the multicore processor, respectively; identifying that a second number of cache misses by the second software application to the shared cache memory occurred over the first time period; determining, based on the first number of cache misses by the first software application and the second number of cache misses by the second software application to the shared cache memory over the first time period, that a degree of contention for the shared cache memory among the first software application and the second software application during the first time period exceeds a threshold degree of contention; accessing data that indicates execution of the first software application on the multicore processor is to be prioritized over execution of the second software application on the multicore processor so as to minimize latency in responding to user inputs directed to the first software application; and in response to determining that the degree of contention for the shared cache memory during the first time period exceeds the threshold degree of contention, adjusting continued execution of the second software application on the second core so as to reduce the degree of contention for the shared cache memory among the first software application and the second software application, wherein the second software application is chosen for adjusted execution rather than the first software application based on the data that indicates execution of the first software application is to be prioritized over execution of the second software application.
-
Specification