Code partitioning for synthesis of embedded applications with phantom

  • Authors:
  • A. C. Nacul;T. Givargis

  • Affiliations:
  • Dept. of Comput. Sci., California Univ., Irvine, CA, USA;Dept. of Comput. Sci., California Univ., Irvine, CA, USA

  • Venue:
  • Proceedings of the 2004 IEEE/ACM International conference on Computer-aided design
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

In a large class of embedded systems, dynamic multitasking using traditional OS techniques is infeasible because of memory and processing overheads or lack of operating systems availability for the target embedded processor. Serializing compilers have been proposed as an alternative solution, enabling a designer to develop multitasking applications without the need of OS support. A serializing compiler is a source-to-source translator that takes a POSIX compliant multitasking C program as input and generates an equivalent, embedded processor independent, single-threaded ANSI C program, to be compiled using the embedded processor-specific tool chain. Such serializing compilers work by partitioning each task into blocks of code and synthesizing a scheduler that dynamically switches among these blocks. The quality of the compiled code in terms of multitasking overhead and task latency is highly dependent on the partitioning algorithm. In this work, we give our solution to the partitioning problem in the context of serializing compilers. We show that it is possible to provide the designer with a set of Pareto-optimal solutions that trade off multitasking overhead for task latency.