Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors
First Claim
1. A method for achieving fair cache memory sharing in a processor having a plurality of cores, each of which has a thread running thereon, and a cache memory that is shared by the threads, the method comprising:
- (a) computing for a thread a fair CPU latency as a product of thread cycles per instruction which that thread would experience when the cache memory was equally shared and a CPU time quantum for that thread;
(b) measuring an actual CPU latency as a product of thread cycles per instruction which that thread experiences and the CPU time quantum for that thread; and
(c) adjusting the actual CPU latency of the thread to be equal to the fair CPU latency.
0 Assignments
0 Petitions
Accused Products
Abstract
In a computer system with a multi-core processor having a shared cache memory level, an operating system scheduler adjusts the CPU latency of a thread running on one of the cores to be equal to the fair CPU latency which that thread would experience when the cache memory was equally shared by adjusting the CPU time quantum of the thread. In particular, during a reconnaissance time period, the operating system scheduler gathers information regarding the threads via conventional hardware counters and uses an analytical model to estimate a fair cache miss rate that the thread would experience if the cache memory was equally shared. During a subsequent calibration period, the operating system scheduler computes the fair CPU latency using runtime statistics and the previously computed fair cache miss rate value to determine the fair CPI value.
60 Citations
20 Claims
-
1. A method for achieving fair cache memory sharing in a processor having a plurality of cores, each of which has a thread running thereon, and a cache memory that is shared by the threads, the method comprising:
-
(a) computing for a thread a fair CPU latency as a product of thread cycles per instruction which that thread would experience when the cache memory was equally shared and a CPU time quantum for that thread; (b) measuring an actual CPU latency as a product of thread cycles per instruction which that thread experiences and the CPU time quantum for that thread; and (c) adjusting the actual CPU latency of the thread to be equal to the fair CPU latency. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. Apparatus for achieving fair cache memory sharing in a processor having a plurality of cores, each of which has a thread running thereon, and a cache memory that is shared by the threads, the apparatus comprising:
-
a mechanism that computes for a thread a fair CPU latency as a product of thread cycles per instruction which that thread would experience when the cache memory was equally shared and a CPU time quantum for that thread; a mechanism that measures an actual CPU latency as a product of thread cycles per instruction which that thread experiences and the CPU time quantum for that thread; and an operating system scheduler that adjusts the actual CPU latency of the thread to be equal to the fair CPU latency. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. Apparatus for achieving fair cache memory sharing in a processor having a plurality of cores, each of which has a thread running thereon, and a cache memory that is shared by the threads, the apparatus comprising:
-
means for computing for a thread a fair CPU latency as a product of thread cycles per instruction which that thread would experience when the cache memory was equally shared and a CPU time quantum for that thread; means for measuring an actual CPU latency as a product of thread cycles per instruction which that thread experiences and the CPU time quantum for that thread; and means for adjusting the actual CPU latency of the thread to be equal to the fair CPU latency. - View Dependent Claims (20)
-
Specification