html5
1 / 14

Research Areas

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.

Télécharger la présentation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Research Areas Stephen A. Edwards

  2. Embedded Systems • Computers Masquerading as Something Else Casio Camera Watch Sony Playstation 2 Nokia 7110 Browser Phone Philips TiVo Recorder Philips DVD player

  3. Long-term Goal • Developing tools to speed the development of embedded systems

  4. 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. 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

  6. 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

  7. 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. 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. 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. 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

  11. 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. 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. 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. 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

More Related