research areas n.
Skip this Video
Download Presentation
Research Areas

Loading in 2 Seconds...

play fullscreen
1 / 14

Research Areas - PowerPoint PPT Presentation

  • Uploaded on

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

PowerPoint Slideshow about 'Research Areas' - cytheria-zenon

Download Now 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 begin Access sequence for register

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

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


identification begin Rules 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