Reducing Code Management Overhead in Software-Managed Multicores

Jian Cai1,a, Yooseong Kim1,b, Youngbin Kim2,d, Aviral Shrivastava1,c and Kyoungwoo Lee2,e
1Compiler-Microarchitecture Lab, Arizona State University, Tempe, AZ.
ajian.cai@asu.edu
byooseong.kim@asu.edu
caviral.shrivastava@asu.edu
2Department of Computer Science, Yonsei University, Seoul, Korea.
dyb.kim@yonsei.ac.kr
ekyoungwoo.lee@yonsei.ac.kr

ABSTRACT


Software-managed architectures, which use scratchpad memories (SPMs), are a promising alternative to cachedbased architectures for multicores. SPMs provide scalability but require explicit management. For example, to use an instruction SPM, explicit management code needs to be inserted around every call site to load functions to the SPM. such management code would check the state of the SPM and perform loading operations if necessary, which can cause considerable overhead at runtime. In this paper, we propose a compiler-based approach to reduce this overhead by identifying management code that can be removed or simplified. Our experiments with various benchmarks show that our approach reduces the execution time by 14% on average. In addition, compared to hardware caching, using our approach on an SPM-based architecture can reduce the execution times of the benchmarks by up to 15%.



Full Text (PDF)