Research Areas - PowerPoint PPT Presentation

Research areas
1 / 14

  • Uploaded on
  • Presentation posted in: General

Research Areas. Stephen A. Edwards. Embedded Systems. Computers Masquerading as Something Else. Casio Camera Watch. Sony Playstation 2. Nokia 7110 Browser Phone. Philips TiVo Recorder. Philips DVD player. Long-term Goal. Developing tools to speed the development of embedded systems.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

Research Areas

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Research areas

Research Areas

Stephen A. Edwards

Embedded systems

Embedded Systems

  • Computers Masquerading as Something Else

Casio Camera Watch

Sony Playstation 2

Nokia 7110 Browser Phone

Philips TiVo Recorder

Philips DVD player

Long term goal

Long-term Goal

  • Developing tools to speed the development of embedded systems

Domain specific languages

Domain-Specific Languages

  • Little languages that fit the problem

  • More succinct description

    • Quicker to create

    • Easier to get right

  • More opportunities for optimization

    • General-purpose languages hindered by undecidability

    • Domain-specific languages much simpler

M. C. Escher, Tower of Babel

Real time languages esterel

Real-time languages: Esterel

Big Ben

  • Synchronous language developed by Gerard Berry in France

  • Basic idea: use global clock for synchronization in software

  • Challenge: How to combine concurrency, synchronization, and instantaneous communication



Restart when RESET present

every RESET do


await A;

emit B;

if C emit D;





if B emit C;




Infinite loop

Wait for next cycle with A present

Run concurrently

Same-cycle bidirectional communication



  • Previous work

    • Compiler that gave 100x speedup on certain large programs

    • Has limitations

    • Owned by former employer

  • Current Projects

    • New, open compiler infrastructure designed for future research

    • Based on SUIF2 system

Esterel compilation plans

Esterel Compilation Plans

  • Apply discrete-event simulation techniques

  • Apply Program Dependence Graph representation

    • Concurrent representation used in optimizing compilers

  • Apply “localized partial interpretation” to expand parts of the system into finite-state machines

  • Techniques will point the way for other synchronous, concurrent languages

Languages for device drivers

Languages for Device Drivers

  • Device drivers are those pieces of software that you absolutely need that never seem to work

  • Tedious, difficult-to-write

  • Ever more important as systems incorporate customized hardware

Best to date

Best To Date

  • Thibault, Marlet, and Consel

  • IEEE Transactions Software Engineering, 1999

  • Developed the Graphics Adaptor Language for writing XFree86 video card drivers

  • Report GAL drivers are 1/9th the size of their C counterparts

  • No performance penalty

Gal s3 driver fragment

GAL S3 driver (fragment)

chipsets S3_911, S3_924;What driver supports

port svga index := 0x3d4;Write address, then data

port misc := 0x3cc, 0x3c2;

register ChipID := sva(0x30);Logical register

serial beginAccess sequence for register

misc[3..2] <= (3,- , -, -, -) W;

seq(0x12) <=> (-, PLL1, -, -, -) R/W;


identification beginRules for identifying card

1: ChipID[7..4] => (0x8 => step 2, 0x 9 => S3_928);

2: ChipID[1..0] => (0x1 => S3_911, 0x2 => S3_924);

Future work

Future work

  • Develop language for network card drivers under Linux

  • Study many existing implementations

  • Develop prototype language, compiler

  • Explore challenge of porting to other OSes

  • Apply lessons to other classes of drivers

Languages for communication protocols

Languages for Communication Protocols

  • Many optimizations for implementing protocol code

    • Fast-path optimization

    • Collapsing layers

  • Tedious to implement manually

  • Tend to obfuscate code

  • Too high-level to be applied to, say, C code

  • Domain-specific language would allow these optimizations to be automated



  • Applying domain-specific languages to solve problems in embedded system design

  • New Esterel infrastructure for real-time programming

  • Languages for device drivers: network interfaces

  • Languages for implementing communication protocols

  • Login