Download presentation
Presentation is loading. Please wait.
1
Copyright © 2001 Stephen A. Edwards All rights reserved Research Areas Stephen A. Edwards
2
Copyright © 2001 Stephen A. Edwards All rights reserved Embedded Systems Computers Masquerading as Something Else Casio Camera Watch Nokia 7110 Browser Phone Sony Playstation 2 Philips DVD player Philips TiVo Recorder
3
Copyright © 2001 Stephen A. Edwards All rights reserved Long-term Goal Developing tools to speed the development of embedded systems
4
Copyright © 2001 Stephen A. Edwards All rights reserved 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
5
Copyright © 2001 Stephen A. Edwards All rights reserved Real-time languages: Esterel 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 Big Ben
6
Copyright © 2001 Stephen A. Edwards All rights reserved Esterel every RESET do loop loop await A; await A; emit B; emit B; if C emit D; if C emit D; pause pause end end|| loop loop if B emit C; if B emit C; pause pause end endend Restart when RESET present Infinite loop Wait for next cycle with A present Same-cycle bidirectional communication Run concurrently
7
Copyright © 2001 Stephen A. Edwards All rights reserved 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
8
Copyright © 2001 Stephen A. Edwards All rights reserved 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
9
Copyright © 2001 Stephen A. Edwards All rights reserved 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
10
Copyright © 2001 Stephen A. Edwards All rights reserved 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/9 th the size of their C counterparts No performance penalty
11
Copyright © 2001 Stephen A. Edwards All rights reserved 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);
12
Copyright © 2001 Stephen A. Edwards All rights reserved 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
13
Copyright © 2001 Stephen A. Edwards All rights reserved 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
14
Copyright © 2001 Stephen A. Edwards All rights reserved 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.