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 条
  • [21] Compiler-directed cache polymorphism
    Hu, JS
    Kandemir, M
    Vijaykrishnan, N
    Irwin, MJ
    Saputra, H
    Zhang, W
    ACM SIGPLAN NOTICES, 2002, 37 (07) : 165 - 174
  • [22] Techniques for compiler-directed cache coherence
    Choi, L
    Lim, HB
    Yew, PC
    IEEE PARALLEL & DISTRIBUTED TECHNOLOGY, 1996, 4 (04): : 23 - &
  • [23] Compiler-directed cache assist adaptivity
    Ji, XM
    Nicolaescu, D
    Veidenbaum, A
    Nicolau, A
    Gupta, R
    HIGH PERFORMANCE COMPUTING, PROCEEDINGS, 2000, 1940 : 88 - 104
  • [24] Code efficiency & compiler-directed feedback
    Brenner, J
    Levy, M
    DR DOBBS JOURNAL, 2003, 28 (12): : 59 - +
  • [25] Dynamic Management of Scratchpad Memory Based On Compiler Driven Approach
    Wang, Hongmei
    Shi, Lei
    Zhang, Tiejun
    Wang, Donghui
    PROCEEDINGS 2010 3RD IEEE INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND INFORMATION TECHNOLOGY, (ICCSIT 2010), VOL 1, 2010, : 668 - 672
  • [26] Reducing data TLB power via compiler-directed address generation
    Kadayif, Ismail
    Nath, Partho
    Kandemir, Mahmut
    Sivasubramaniam, Anand
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2007, 26 (02) : 312 - 324
  • [27] Compiler-directed customization of ASIP cores
    Gupta, TVK
    Ko, RE
    Barua, R
    CODES 2002: PROCEEDINGS OF THE TENTH INTERNATIONAL SYMPOSIUM ON HARDWARE/SOFTWARE CODESIGN, 2002, : 97 - 102
  • [28] Compiler-directed management of leakage power in software-managed memories
    Chen, G.
    Li, F.
    Kandemir, M.
    Ozturk, O.
    Demirkiran, I.
    IEEE COMPUTER SOCIETY ANNUAL SYMPOSIUM ON VLSI, PROCEEDINGS: EMERGING VLSI TECHNOLOGIES AND ARCHITECTURES, 2006, : 450 - +
  • [29] A compiler-directed approach to network latency reduction for distributed shared memory multiprocessors
    Ray, S
    Jiang, H
    Yang, Q
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1996, 38 (02) : 267 - 276
  • [30] Compiler-Directed Memory Hierarchy Design for Low-Energy Embedded Systems
    Balasa, Florin
    Luican, Ilie I.
    Abuaesh, Noha
    Gingu, Cristian V.
    2013 ELEVENTH ACM/IEEE INTERNATIONAL CONFERENCE ON FORMAL METHODS AND MODELS FOR CODESIGN (MEMOCODE 2013), 2013, : 147 - 156