High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded...
-
Upload
lindsay-ellis -
Category
Documents
-
view
217 -
download
1
Transcript of High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded...
![Page 1: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/1.jpg)
High Performance Embedded Computing
© 2007 Elsevier
Lecture 3: Design Methodologies
Embedded Computing Systems
Mikko Lipasti, adapted from M. Schulte
Based on slides and textbook from Wayne Wolf
![Page 2: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/2.jpg)
© 2006 Elsevier
Topics
Design Goals Design methodologies. Methodologies and standards.
![Page 3: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/3.jpg)
© 2006 Elsevier
Design goals
Functional requirements: input/output relations.
Non-functional requirements: cost, performance, power, etc.
Some project goals may be difficult to measure. What types of goals are more difficult to measure? Why are these goals important?
![Page 4: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/4.jpg)
© 2006 Elsevier
Aspects of performance
Embedded system performance can be measured in many ways: Average vs. worst-case vs. best-case. Throughput vs. latency. Peak vs. sustained.
Why might we care about best-case performance? Average-case? Worst-case?
How is performance estimated/measured?
![Page 5: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/5.jpg)
© 2006 Elsevier
Energy/power
Energy consumption (joules) is important for battery life.
Power consumption (Watts = joules/sec) is important for heat generation or for generator-powered systems (e.g. cars).
What are some techniques for improving energy and power consumption?
![Page 6: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/6.jpg)
© 2006 Elsevier
Cost Manufacturing costs
Determined by the cost of components and the manufacturing process used
Must be paid off across all the systems. Hardest in small-volume applications.
Incurred for each device Designed costs determined by labor and the
equipment used to support the design process
Lifetime costs include software and hardware maintenance and upgrades.
![Page 7: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/7.jpg)
© 2006 Elsevier
Other design attributes
Design time must be reasonable. May need to finish by a certain date. Time to market
System must be reliable; reliability requirements differ widely.
Quality includes reliability and other aspects: usability, durability, etc.
What other attributes may be important in embedded systems?
![Page 8: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/8.jpg)
© 2006 Elsevier
Design methodology
Design methodology: a procedure for creating an implementation from a set of requirements.
Methodology is important in embedded computing: Must design many different systems. We may use same/similar components in many
different designs. Both design time and results must be predictable.
![Page 9: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/9.jpg)
© 2006 Elsevier
Embedded system design challenges Design space is large and irregular. We don’t have synthesis tools for many
steps. Can’t simulate everything. May need to build special-purpose simulators
quickly. Often need to start software development
before hardware is finished.
![Page 10: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/10.jpg)
© 2006 Elsevier
Design complexity vs. designer productivity
How can design complexity be managed? How can designer productivity be improved?
![Page 11: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/11.jpg)
© 2006 Elsevier
Basic design methodologies
Figure out flow of decision-making. Determine when bottom-up information is
generated. Determine when top-down decisions are
made.
![Page 12: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/12.jpg)
© 2006 Elsevier
Software design methodologies:waterfall and spiral models
![Page 13: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/13.jpg)
© 2006 Elsevier
Hardware design flow
![Page 14: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/14.jpg)
© 2006 Elsevier
Hardware/software co-design flow
![Page 15: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/15.jpg)
© 2006 Elsevier
Platform-based design
Platform includes hardware, supporting software.
Two stage process: Design the platform. Use the platform.
Platform can be reused to host many different systems.
![Page 16: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/16.jpg)
© 2006 Elsevier
Platform design
Turn system requirements and software models into detailed requirements. Use profiling and analysis tools to measure
existing executable specifications. Explore the design space manually or
automatically. Optimize the system architecture based on
the results of simulation and other steps. Develop hardware abstraction layers and
other software.
![Page 17: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/17.jpg)
© 2006 Elsevier
Programming platforms Programming environment must be
customized to the platform: Multiple CPUs. Specialized memory. Specialized I/O devices.
Libraries are often used to glue together processors on platforms.
Debugging environments are a particular challenge.
![Page 18: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/18.jpg)
© 2006 Elsevier
Standards-based design methodologies Standards enable large markets. Standards generally allow products to be
differentiated. Different implementations of operations, so long
as I/O behavior is maintained. User interface is often not standardized.
Standard may dictate certain non-functional requirements (power consumption, latency) and implementation techniques.
![Page 19: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/19.jpg)
© 2006 Elsevier
Reference implementations
Executable program that complies with the I/O behavior of the standard. May be written in a variety of languages.
In some cases, the reference implementation is the most complete description of the standard.
Reference implementation is often not well-suited to embedded system implementation: Single process. Infinite memory. Non-real-time behavior.
![Page 20: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/20.jpg)
© 2006 Elsevier
Designing standards-based systems1. Design and implement system components
that are not part of the standard.2. Perform platform-independent optimizations.3. Analyze optimized version of reference
implementation.4. Design hardware platform.5. Optimize system software based on platform.6. Further optimize platform.7. Test for conformity to standard.
![Page 21: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/21.jpg)
© 2006 Elsevier
H/264/AVC
Implements video coding for a wide range of applications: Broadcast and videoconferencing. Cell phone-sized screens to HDTV.
Video codec reference implementation contains 120,000 lines of C code.
![Page 22: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/22.jpg)
© 2006 Elsevier
Design verification and validation Testing exercises an implementation by
supplying inputs and testing outputs. Validation compares the implementation to a
specification or requirements. Verification may be performed at any design
stage; compares design at one level of abstraction to another.
![Page 23: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/23.jpg)
© 2006 Elsevier
Design verification techniques Simulation uses an executable model, relies
on inputs. Formal methods generate a (possibly
specialized) proof. Manual methods, such as design reviews,
catch design errors informally.
![Page 24: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/24.jpg)
© 2006 Elsevier
A methodology of methodologies Embedded systems include both hardware
and software. HW, SW have their own design methodologies.
Embedded system methodologies control the overall process, HW/SW integration, etc. Must take into account the good and bad points of
hardware and software design methodologies used.
![Page 25: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/25.jpg)
© 2006 Elsevier
Useful methodologies
Software performance analysis. Architectural optimization. Hardware/software co-design. Network design. Software verification. Software tool generation.
![Page 26: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/26.jpg)
© 2006 Elsevier
Joint algorithm and architecture development Some algorithm design is necessarily
performed before platform design. Algorithm development can be informed by
platform architecture design. Performance/power/cost trade-offs. Design trends over several generations.
![Page 27: High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.](https://reader030.fdocuments.us/reader030/viewer/2022032607/56649ec75503460f94bd2cf6/html5/thumbnails/27.jpg)
© 2006 Elsevier
Summary
Design Goals Design methodologies. Methodologies and standards.