Compiler-Directed Scratchpad Memory Management via Graph Coloring

被引:28
|
作者
Li, Lian [1 ]
Feng, Hui [1 ]
Xue, Jingling [1 ]
机构
[1] Univ New S Wales, Sch Comp Sci & Engn, Programming Languages & Compilers Grp, Sydney, NSW 2052, Australia
基金
澳大利亚研究理事会;
关键词
Algorithms; Languages; Experimentation; Performance; Scratchpad memory; software-managed cache; memory allocation; graph coloring; memory coloring; live range splitting; register coalescing;
D O I
10.1145/1582710.1582711
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Scratchpad memory (SPM), a fast on-chip SRAM managed by software, is widely used in embedded systems. This article introduces a general-purpose compiler approach, called memory coloring, to assign static data aggregates, such as arrays and structs, in a program to an SPM. The novelty of this approach lies in partitioning the SPM into a pseudo-register file (with interchangeable and aliased registers), splitting the live ranges of data aggregates to create potential data transfer statements between SPM and off-chip memory, and finally, adapting an existing graph coloring algorithm for register allocation to assign the data aggregates to the pseudo-register file. Our experimental results using a set of 10 C benchmarks from MediaBench and MiBench show that our methodology is capable of managing SPMs efficiently and effectively for large embedded applications. In addition, our SPM allocator can obtain close to optimal solutions when evaluated and compared against an existing heuristics-based SPM allocator and an ILP-based SPM allocator.
引用
收藏
页数:17
相关论文
共 50 条
  • [31] Compiler-directed classification of value locality Behavior
    Zhao, Q
    Lilja, DJ
    2001 INTERNATIONAL CONFERENCE ON COMPUTER DESIGN, ICCD 2001, PROCEEDINGS, 2001, : 240 - 248
  • [32] Compiler-directed collective-I/O
    Kandemir, M
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2001, 12 (12) : 1318 - 1331
  • [33] Compiler-directed data cache leakage reduction
    Zhang, W
    VLSI 2004: IEEE COMPUTER SOCIETY ANNUAL SYMPOSIUM ON VLSI, PROCEEDINGS, 2004, : 305 - 306
  • [34] Compiler-directed data partitioning for multicluster processors
    Chu, Michael L.
    Mahlke, Scott A.
    CGO 2006: 4TH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2006, : 208 - +
  • [35] Compiler-Directed Leakage Reduction in Embedded Microprocessors
    Roy, Soumyaroop
    Ranganathan, Nagarajan
    Katkoori, Srinivas
    2009 IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN, 2009, : 35 - 40
  • [36] Compiler-directed variable latency aware SPM management to cope it timing problems
    Ozturk, O.
    Chen, G.
    Kandemir, M.
    Karakoy, M.
    CGO 2007: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2007, : 232 - 243
  • [37] Compiler-Directed Whole-System Persistence
    Zeng, Jianping
    Zhang, Tong
    Jung, Changhee
    2024 ACM/IEEE 51ST ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE, ISCA 2024, 2024, : 961 - 977
  • [38] Compiler-directed instruction cache leakage optimization
    Zhang, W
    Hu, JS
    Degalahal, V
    Kandemir, M
    Vijaykrishnan, N
    Irwin, MJ
    35TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO-35), PROCEEDINGS, 2002, : 208 - 218
  • [39] Performance potentials of compiler-directed data speculation
    Wu, YF
    Chen, LL
    Ju, R
    Fang, J
    ISPASS: 2003 IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE, 2003, : 22 - 31
  • [40] Compiler-directed code restructuring for improving performance of MPSoCs
    Chen, Guilin
    Kandemir, Mahmut
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2008, 19 (09) : 1201 - 1214