Search: 
 
View
  By topic
  As outline
  Fully expanded

Forum topics
  compiler-infrastructure
  arch-summaries
  compiler-summaries
  moc's
  network-drivers
  Presentations
  Princeton Presentation
  Simulator
  Reading List
  Design Examples
  Architecture Discussion
  Related Conferences
  Downloads
  DEPRECATED
  DEPRECATED
  Taxonomies

Articles
  A Framework
Home
People
Publications
Multiprocessor Architecture Watch
Concurrency Abstraction Watch
Laboratory
 
Modern Embedded Systems: Compilers, Architectures, and Languages
Forum
Compiler paper summaries
Previous topic  |  This topic  |  Next topic
Previous article  |  This article  |  Next article

A Framework for Development of Embedded Systems - Jain, Sinha, (Malik, Kumar, Balakrishnan)
Michael Shilman, 17 Sep 1999

  1. MPI and Pthreads are two standard C APIs for adding concurrency and communication to a program. MPI supports both blocking and non-blocking message-based communication. Pthreads is based on a shared memory model and synchronization primitives.
  2. SUIF provides a basic annotation facility, whereby AST nodes can be annotated with user data. Each SUIF pass generates a set of ".SPF" files and the annotations can also be serialized into these files. The ESIR is a program representation that encompasses uses SUIF annotations for embedded systems design, including comprehension of threads and processes, as well as support real-time constraint satisfaction and flexible architecture mappings.
  3. The estimator they have written analyzes a C program written using MPI and/or Pthreads. The user can specify a number of constraints and the estimator tries to verify that these constraints are self-consistent(?):
    • rate constraints [min/max]
    • timeout constraints [number]
    • latency constraints [number]
    • intra-process constraints [min/max]

    Because loops and conditionals cause analysis problems, they add restrictions which make it illegal to create new processes/threads inside a loop or conditional. Furthermore, blocking communications are also forbidden inside loops and conditionals.

    The following annotations are statically extracted from the program:

    • total # of processes, list of processes
    • architecture template related information (???)
    • communication graph
    With each process:
    • pointer to its code
    • its rank (for static scheduling?)
    • mapping (to sw for a particular arch, or to hardware)
    • code size in Kb.
    • an optional VHDL file
    • a thread graph (fork/join graph of threads in the process)
    • lists of send-to/receive-from processes
    • time period, rate at which the process is invoked (???)

Stuff that I didn't understand from giving the report a once-over-lightly:

  1. How exactly do the constraints interrelate and how exactly are they used?
  2. Are the restrictions that have been placed on the specification sufficient to perform powerful analyses? If so, are they overly restrictive on the designer?
  3. What from the paper is actually implemented/automated and what is just hand-waved? Its fine to say that "annotating a process with X is sufficient for Blah" but this doesn't mean that it's possible to automatically compute X or easy to perform Blah in reasonable time.
 
Previous topic  |  This topic  |  Next topic
Previous article  |  This article  |  Next article
Send feedback to mescal@gigascale.org
You are not logged in
©1998-2008 GSRC