A chip multithreading processor schedules and assigns threads to its
processing cores dependent on estimated miss rates in a shared cache
memory of the threads. A cache miss rate of a thread is estimated by
measuring cache miss rates of one or more groups of executing threads,
where at least one of the groups includes the thread of interest. Using a
determined estimated cache miss rate of the thread, the thread is
scheduled with other threads to achieve a relatively low cache miss rate
in the shared cache memory.