{'fraction_non_alphanumeric': 0.0227125243348475, 'fraction_numerical': 0.0012978585334198572, 'mean_word_length': 5.2682926829268295, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
LCP&TS: Logical cache partitioning and thread sharing replacement policy for multi-threaded applications

Cache replacement algorithm plays an important role in the overall system performance. In multi-core systems or chip multiprocessors (CMP), this can be enhanced as every core having a private cache and a much larger shared cache. The cache replacement policy at the Last Level Cache (LLC) which is shared by different cores is vital for multi-core systems. Replacement policies like Least Recently Used (LRU), Most Recently Used (MRU) that are more dominant in the multi-core systems try to classify elements purely based on the number of hits they receive during their stay in cache. LRU gives suboptimal performance when the applications deviates from the temporal locality principle. Apart from this, the conventional replacement policies do not fare well with multi-threaded applications as they share data between them. Recent studies have shown that few counter based techniques like Logical Cache Partitioning (LCP) and Shared and Hit based Priority (SHP) techniques show some improvement over LRU for some applications as LRU does not adapt to dynamically changing pattern. This study proposes a new hybrid cache replacement technique called Logical Cache Partitioning and Thread Sharing (LCP&TS) applied over LCP wherein the accuracy of finding the cache victim is improved. Multi-threaded workloads of PARSEC and SPLASH2 benchmarks are run on Multi2sim simulator and the proposed technique shows improvement over LRU and LCP.