Research Areas Stephen A Edwards Copyright 2001 Stephen

  • Slides: 14
Download presentation
Research Areas Stephen A. Edwards Copyright © 2001 Stephen A. Edwards All rights reserved

Research Areas Stephen A. Edwards Copyright © 2001 Stephen A. Edwards All rights reserved

Embedded Systems § Computers Masquerading as Something Else Casio Camera Watch Nokia 7110 Browser

Embedded Systems § Computers Masquerading as Something Else Casio Camera Watch Nokia 7110 Browser Phone Sony Playstation 2 Philips Ti. Vo Recorder Philips DVD player Copyright © 2001 Stephen A. Edwards All rights reserved

Long-term Goal § Developing tools to speed the development of embedded systems Copyright ©

Long-term Goal § Developing tools to speed the development of embedded systems Copyright © 2001 Stephen A. Edwards All rights reserved

Domain-Specific Languages § Little languages that fit the problem § More succinct description •

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 Copyright © 2001 Stephen A. Edwards All rights reserved M. C. Escher, Tower of Babel

Real-time languages: Esterel § Synchronous language developed by Gerard Berry in France § Basic

Real-time languages: Esterel § Synchronous language developed by Gerard Berry in France § Basic idea: use global clock for synchronization in software Big Ben § Challenge: How to combine concurrency, synchronization, and instantaneous communication Copyright © 2001 Stephen A. Edwards All rights reserved

Esterel Restart when RESET present Infinite loop Wait for next cycle with A present

Esterel Restart when RESET present Infinite loop Wait for next cycle with A present Run concurrently Same-cycle bidirectional communication every RESET do loop await A; emit B; if C emit D; pause end || loop if B emit C; pause end Copyright © 2001 Stephen A. Edwards All rights reserved

Esterel § Previous work • • • Compiler that gave 100 x speedup on

Esterel § Previous work • • • Compiler that gave 100 x speedup on certain large programs Has limitations Owned by former employer § Current Projects • • New, open compiler infrastructure designed for future research Based on SUIF 2 system Copyright © 2001 Stephen A. Edwards All rights reserved

Esterel Compilation Plans § Apply discrete-event simulation techniques § Apply Program Dependence Graph representation

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 Copyright © 2001 Stephen A. Edwards All rights reserved

Languages for Device Drivers § Device drivers are those pieces of software that you

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 Copyright © 2001 Stephen A. Edwards All rights reserved

Best To Date § Thibault, Marlet, and Consel § IEEE Transactions Software Engineering, 1999

Best To Date § Thibault, Marlet, and Consel § IEEE Transactions Software Engineering, 1999 § Developed the Graphics Adaptor Language for writing XFree 86 video card drivers § Report GAL drivers are 1/9 th the size of their C counterparts § No performance penalty Copyright © 2001 Stephen A. Edwards All rights reserved

GAL S 3 driver (fragment) chipsets S 3_911, S 3_924; What driver supports port

GAL S 3 driver (fragment) chipsets S 3_911, S 3_924; What driver supports port svga index : = 0 x 3 d 4; port misc : = 0 x 3 cc, 0 x 3 c 2; Write address, then data register Chip. ID : = sva(0 x 30); Logical register serial begin Access sequence for register misc[3. . 2] <= (3, - , -, -, -) W; seq(0 x 12) <=> (-, PLL 1, -, -, -) R/W; end; identification begin Rules for identifying card 1: Chip. ID[7. . 4] => (0 x 8 => step 2, 0 x 9 => S 3_928); 2: Chip. ID[1. . 0] => (0 x 1 => S 3_911, 0 x 2 => S 3_924); Copyright © 2001 Stephen A. Edwards All rights reserved

Future work § Develop language for network card drivers under Linux § Study many

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 Copyright © 2001 Stephen A. Edwards All rights reserved

Languages for Communication Protocols § Many optimizations for implementing protocol code • • Fast-path

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 Copyright © 2001 Stephen A. Edwards All rights reserved

Summary § Applying domain-specific languages to solve problems in embedded system design § New

Summary § 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 Copyright © 2001 Stephen A. Edwards All rights reserved