对于片上多核处理器,如何在多线程间公平有效地分配调度有限的共享资源是一个很重要的问题.随着处理器核规模的增长,多线程对于系统中有限的共享资源的争夺将愈发激烈,由此导致的对于系统性能的影响也将更加显著.为了缓解乃至解决这一问题,除了增加可用共享资源外,一个能够公平有效地在多线程间分配共享资源的调度算法也至关重要.在各类共享资源中,对于系统性能有着最大影响的是共享缓存和动态随机存储器(dynamic random-access memory, DRAM)系统.对于共享缓存,可以通过缓存分区来降低由于线程间的争夺所带来的影响;对于DRAM系统,可以采取适当的调度算法来调节各个线程发出的访存请求的服务优先级,从而改善系统性能.首先分别以系统吞吐量和公平性为优化目标介绍了一系列对共享缓存的分区调度算法,并针对缓存分区粒度过大的问题给出了相关解决方案.然后从利用线程的访存行为特征和借鉴网络路由算法等多个角度介绍了DRAM的调度算法.研究了从全局出发的联合调度算法,以解决针对不同共享资源的调度算法间相互矛盾的问题.最后从不同角度对于今后的研究进行了展望.
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.