Buffer sharing in CSP-like programs

  • Authors:
  • Nalini Vasudevan;Stephen A. Edwards

  • Affiliations:
  • Department of Computer Science, Columbia University, New York;Department of Computer Science, Columbia University, New York

  • Venue:
  • MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory use can be just as important in constrained environments such as embedded systems. In this paper, we present a memory reduction technique for the deterministic concurrent programming language SHIM. We focus on reducing memory consumption by sharing buffers among tasks, which use them to communicate using CSP-style rendezvous. We determine pairs of buffers that can never be in use simultaneously and use a shared region of memory for each pair. Our technique produces a static abstraction of a SHIM program's dynamic behavior, which we then analyze to find buffers that can share memory. Experimentally, we find our technique runs quickly on modest-sized programs and can sometimes reduce memory requirements by half.