Effective on-chip cache utilization in chip multiprocessors