Abstract:This paper shows the technical evolution of memory partitioning on shared memory systems using the cases of page coloring. Multiple co-running applications incur memory contentions across the entire memory hierarchy in the age of multicore, negatively impacting the overall system performance and the QoS. Researchers are always seeking new solutions to aid these problems. The paper presents the well-known and well-developed technology—"Page coloring" and summarizes its evolution since 1990. This paper introduces how to leverage page coloring on Cache, DRAM/NVM Banks in main memory systems, and memory channels. On the Bank level, concurrent applications are mapped to a different group of Banks, thus eliminating inter-application memory conflicts. In terms of Cache and DRAM Banks, this paper introduces the "vertical partitioning" to mitigate memory conflicts across the multiple levels at the memory hierarchy at the same time. Finally, this study shows how to use page coloring on systems equipped with hybrid NVM systems. The experimental results show that the memory partitioning technologies through page coloring bring significant performance benefits and QoS.