140 likes | 227 Views
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.
E N D
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
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 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
Esterel Restart when RESET present every RESET do loop await A; emit B; if C emit D; pause end || loop if B emit C; pause end end Infinite loop Wait for next cycle with A present Run concurrently Same-cycle bidirectional communication
Esterel • 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 • 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 • 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 • 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) 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; end; 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 • 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 • 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
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