Abstract
In multicore systems with shared cache, multiple tasks run on multiple cores simultaneously and compete for the shared cache. Cache interference occurs when a task running on one core replaces cache data belonging to other tasks running on other cores. With today’s multicore systems running tasks with different priorities, the need for providing QoS guarantees on cache usage is gaining importance. Solutions to reduce cache interference and provide cache QoS mainly used a cache partitioning approach to split the cache among different cores. The solutions were implemented and validated only on simulators and not on real systems. This paper discusses new techniques that are used on real systems to (1) experimentally measure the amount of interference caused by multiple coscheduled programs, (2) reduce interference miss rate of some programs at the expense of others and (3) provide cache QoS guarantees to programs and ensure their miss rates remain below a ceiling.
Similar content being viewed by others
References
Chang, J., Sohi, G.S.: Cooperative cache partitioning for chip multiprocessors. In: 25th Anniversary International Conference on Supercomputing Anniversary Volume, pp. 402–412. ACM (2014)
Daly, D., Cain, H.W.: Cache restoration for highly partitioned virtualized systems. In: 2012 IEEE 18th International Symposium on High Performance Computer Architecture (HPCA), pp. 1–10. IEEE (2012)
Henning, J.L.: SPEC CPU2006 benchmark descriptions. ACM SIGARCH Comput Arch News 34(4), 1–17 (2006)
Herdrich, A., Illikkal, R., Iyer, R., Newell, D., Chadha, V., Moses, J.: Rate-based QoS techniques for cache/memory in CMP platforms. In: Proceedings of the 23rd International Conference on Supercomputing, pp. 479–488. ACM (2009)
Iyer, R.: CQoS: a framework for enabling QoS in shared caches of CMP platforms. In: Proceedings of the 18th Annual International Conference on Supercomputing, pp. 257–266. ACM (2004)
Iyer, R., Zhao, L., Guo, F., Illikkal, R., Makineni, S., Newell, D., Solihin, Y., Hsu, L., Reinhardt, S.: QoS policies and architecture for cache/memory in CMP platforms. ACM SIGMETRICS Perform Eval Rev 35(1), 25–36 (2007)
Kim, S., Chandra, D., Solihin, Y.: Fair cache sharing and partitioning in a chip multiprocessor architecture. In: Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques, PACT ’04, pp. 111–122. IEEE Computer Society (2004)
Lin, J., Lu, Q., Ding, X., Zhang, Z., Zhang, X., Sadayappan, P.: Gaining insights into multicore cache partitioning: bridging the gap between simulation and real systems. In: IEEE 14th International Symposium on High Performance Computer Architecture, 2008. HPCA 2008, pp. 367–378. IEEE (2008)
Mars, J., Vachharajani, N., Hundt, R., Soffa, M.L.: Contention aware execution: online contention detection and response. In: Proceedings of the 8th Annual IEEE/ACM International Symposium on Code Generation and Optimization, pp. 257–265. ACM (2010)
Muralidhara, S.P., Subramanian, L., Mutlu, O., Kandemir, M., Moscibroda, T.: Reducing memory interference in multicore systems via application-aware memory channel partitioning. In: Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 374–385. ACM (2011)
Qureshi, M.K., Patt, Y.N.: Utility-based cache partitioning: a low-overhead, high-performance, runtime mechanism to partition shared caches. In: Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 423–432. IEEE Computer Society (2006)
Rafique, N., Lim, W.T., Thottethodi, M.: Architectural support for operating system-driven CMP cache management. In: Proceedings of the 15th International Conference on Parallel Architectures and Compilation Techniques, pp. 2–12. ACM (2006)
Srikantaiah, S., Kandemir, M., Irwin, M.J.: Adaptive set pinning: managing shared caches in chip multiprocessors. ACM SIGARCH Comput Arch News 36(1), 135–144 (2008)
Suh, G.E., Rudolph, L., Devadas, S.: Dynamic partitioning of shared cache memory. J Supercomput 28(1), 7–26 (2004)
Suo, G., Yang, X.: Balancing parallel applications on multi-core processors based on cache partitioning. In: 2009 IEEE International Symposium on Parallel and Distributed Processing with Applications, pp. 190–195. IEEE (2009)
Zebchuk, J., Cain, H.W., Tong, X., Srinivasan, V., Moshovos, A.: RECAP: a region-based cure for the common cold (cache). In: 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA2013), pp. 83–94. IEEE (2013)
Zhuravlev, S., Blagodurov, S., Fedorova, A.: Addressing shared resource contention in multicore processors via scheduling. In: ACM SIGARCH Computer Architecture News, vol. 38, pp. 129–142. ACM (2010)
Author information
Authors and Affiliations
Corresponding author
Additional information
This work has been supported by DST-PURSE Phase 2 program with Grant No. 9500/PD2/2014.
Rights and permissions
About this article
Cite this article
Sivakumaran, K., Siromoney, A. Priority Based Yield of Shared Cache to Provide Cache QoS in Multicore Systems. Int J Parallel Prog 45, 634–656 (2017). https://doi.org/10.1007/s10766-016-0443-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-016-0443-4