Abstract:
Chip multi-processor (CMP) is so prevalent that it has become the mainstream of high performance processors. CMP improves the throughput of processor, since it executes multiple threads simultaneously. Nevertheless, as some resources on chip are shared by all threads, there are new problems that does not exist in previous single-processor systems. The contention of shared resources between multiple threads executed on different cores can significantly influence the quality of service of some threads and degrade the overall performance of the system. As a result, how to schedule the shared resources (shared cache and main memory are two of the most important shared resources in CMP) fairly becomes a serious problem for CMP. In this paper, we summarize the recent studies of shared resource scheduling. Firstly, we introduce a series of cache partitioning algorithms to improve the throughput and fairness of shared cache, including some novel cache partitioning techniques that overcome the limitation of coarse-grain allocations. Then, we review some investigations on memory access scheduling from different perspectives by considering row-buffer locality, bank level parallelism, and so on. After that, we study some coordinated mechanisms that provide performance improvement of the entire system. Finally, potential research issues and future work are also introduced.