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

Research Areas

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Research AreasResearch Areas

Stephen A. Edwards

Page 2: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Embedded SystemsEmbedded Systems

Computers Masquerading as Something Else

Casio Camera Watch

Nokia 7110 Browser Phone

Sony Playstation 2

Philips DVD player Philips TiVo Recorder

Page 3: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Long-term GoalLong-term Goal

Developing tools to speed the development of embedded systems

Page 4: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Domain-Specific LanguagesDomain-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

simplerM. C. Escher, Tower of

Babel

Page 5: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Real-time languages: EsterelReal-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

Page 6: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

EsterelEsterel

every RESET doevery RESET do looploop await A;await A; emit B;emit B; if C emit D;if C emit D; pausepause endend|||| looploop if B emit C;if B emit C; pausepause endendendend

Restart when RESET present

Infinite loop

Wait for next cycle with A present

Same-cycle bidirectional

communication

Run concurrently

Page 7: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

EsterelEsterel

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

Page 8: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Esterel Compilation PlansEsterel 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

Page 9: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Languages for Device DriversLanguages 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

Page 10: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Best To DateBest 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

Page 11: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

GAL S3 driver (fragment)GAL S3 driver (fragment)

chipsets S3_911, S3_924; What driver supports

port svga index := 0x3d4; Write address, then dataport 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 card1: ChipID[7..4] => (0x8 => step 2, 0x 9 => S3_928);2: ChipID[1..0] => (0x1 => S3_911, 0x2 => S3_924);

Page 12: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

Future workFuture 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

Page 13: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

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

Page 14: Research Areas

Copyright © 2001 Stephen A. Edwards All rights reserved

SummarySummary

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