Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems

Cache partitioning is a successful technique for saving energy for a shared cache and all the existing studies focus on multi-program workloads running in multicore systems. In this paper, we are motivated by the fact that a multi-thread application generally executes faster than its single-thread c...

Full description

Bibliographic Details
Main Authors: Kai Huang, Ke Wang, Dandan Zheng, Xiaoxu Zhang, Xiaolang Yan
Format: Article
Language:English
Published: MDPI AG 2018-09-01
Series:Electronics
Subjects:
Online Access:http://www.mdpi.com/2079-9292/7/9/172
id doaj-f0e2f8ae3f494a28a99cc7145d16f973
record_format Article
spelling doaj-f0e2f8ae3f494a28a99cc7145d16f9732020-11-24T21:23:20ZengMDPI AGElectronics2079-92922018-09-017917210.3390/electronics7090172electronics7090172Access Adaptive and Thread-Aware Cache Partitioning in Multicore SystemsKai Huang0Ke Wang1Dandan Zheng2Xiaoxu Zhang3Xiaolang Yan4Institute of VLSI Design, Zhejiang University, Hangzhou 310027, ChinaInstitute of VLSI Design, Zhejiang University, Hangzhou 310027, ChinaInstitute of VLSI Design, Zhejiang University, Hangzhou 310027, ChinaSchool of Information & Electronic Engineering, Zhejiang Gongshang University, Hangzhou 310018, ChinaInstitute of VLSI Design, Zhejiang University, Hangzhou 310027, ChinaCache partitioning is a successful technique for saving energy for a shared cache and all the existing studies focus on multi-program workloads running in multicore systems. In this paper, we are motivated by the fact that a multi-thread application generally executes faster than its single-thread counterpart and its cache accessing behavior is quite different. Based on this observation, we study applications running in multi-thread mode and classify data of the multi-thread applications into shared and private categories, which helps reduce the interferences among shared and private data and contributes to constructing a more efficient cache partitioning scheme. We also propose a hardware structure to support these operations. Then, an access adaptive and thread-aware cache partitioning (ATCP) scheme is proposed, which assigns separate cache portions to shared and private data to avoid the evictions caused by the conflicts from the data of different categories in the shared cache. The proposed ATCP achieves a lower energy consumption, meanwhile improving the performance of applications compared with the least recently used (LRU) managed, core-based evenly partitioning (EVEN) and utility-based cache partitioning (UCP) schemes. The experimental results show that ATCP can achieve 29.6% and 19.9% average energy savings compared with LRU and UCP schemes in a quad-core system. Moreover, the average speedup of multi-thread ATCP with respect to single-thread LRU is at 1.89.http://www.mdpi.com/2079-9292/7/9/172shared cache partitioningthread-awareaccess type classificationway access permission registersthread-aware cache monitorMILP
collection DOAJ
language English
format Article
sources DOAJ
author Kai Huang
Ke Wang
Dandan Zheng
Xiaoxu Zhang
Xiaolang Yan
spellingShingle Kai Huang
Ke Wang
Dandan Zheng
Xiaoxu Zhang
Xiaolang Yan
Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems
Electronics
shared cache partitioning
thread-aware
access type classification
way access permission registers
thread-aware cache monitor
MILP
author_facet Kai Huang
Ke Wang
Dandan Zheng
Xiaoxu Zhang
Xiaolang Yan
author_sort Kai Huang
title Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems
title_short Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems
title_full Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems
title_fullStr Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems
title_full_unstemmed Access Adaptive and Thread-Aware Cache Partitioning in Multicore Systems
title_sort access adaptive and thread-aware cache partitioning in multicore systems
publisher MDPI AG
series Electronics
issn 2079-9292
publishDate 2018-09-01
description Cache partitioning is a successful technique for saving energy for a shared cache and all the existing studies focus on multi-program workloads running in multicore systems. In this paper, we are motivated by the fact that a multi-thread application generally executes faster than its single-thread counterpart and its cache accessing behavior is quite different. Based on this observation, we study applications running in multi-thread mode and classify data of the multi-thread applications into shared and private categories, which helps reduce the interferences among shared and private data and contributes to constructing a more efficient cache partitioning scheme. We also propose a hardware structure to support these operations. Then, an access adaptive and thread-aware cache partitioning (ATCP) scheme is proposed, which assigns separate cache portions to shared and private data to avoid the evictions caused by the conflicts from the data of different categories in the shared cache. The proposed ATCP achieves a lower energy consumption, meanwhile improving the performance of applications compared with the least recently used (LRU) managed, core-based evenly partitioning (EVEN) and utility-based cache partitioning (UCP) schemes. The experimental results show that ATCP can achieve 29.6% and 19.9% average energy savings compared with LRU and UCP schemes in a quad-core system. Moreover, the average speedup of multi-thread ATCP with respect to single-thread LRU is at 1.89.
topic shared cache partitioning
thread-aware
access type classification
way access permission registers
thread-aware cache monitor
MILP
url http://www.mdpi.com/2079-9292/7/9/172
work_keys_str_mv AT kaihuang accessadaptiveandthreadawarecachepartitioninginmulticoresystems
AT kewang accessadaptiveandthreadawarecachepartitioninginmulticoresystems
AT dandanzheng accessadaptiveandthreadawarecachepartitioninginmulticoresystems
AT xiaoxuzhang accessadaptiveandthreadawarecachepartitioninginmulticoresystems
AT xiaolangyan accessadaptiveandthreadawarecachepartitioninginmulticoresystems
_version_ 1725992091819966464