Cuauhtémoc Carbajal Cuauhtémoc Carbajal Reference: Barry & Crowley, Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems , Morgan Kaufmann, 2012.
Introduction � � Most classes of electronics are becoming embedded systems � Consequences of this trend � There will be a great many more embedded systems in the future than there have been in the past, so skilled designers and programmers have a future of stable employment ahead of them. � From a technical perspective, the nature of embedded systems design is changing to reflect the large numbers of systems that are connected and have rich media interfaces. � In this course, you will explore the design of modern embedded systems and learn many of the principles and skills needed to develop and program them effectively.
What is an Embedded System? � � Any device that includes a programmable computer but is not itself a general-purpose computer. � Embedded systems are stand alone computing devices usually dedicated to performing limited computing functions reliably, securely and with minimum upkeep costs. � The intended use of an embedded system drives many of its design constraints and tradeoffs.
Constraints � � The size and physical form factor are often a natural consequence of a system’s intended use. � Embedded systems have historically been designed with comparatively aggressive dynamic power management mechanisms. � Embedded systems are typically designed and deployed with a relatively static and predetermined set of system resources and features . � Most embedded systems are parts of devices or infrastructure and are expected to function reliably and deterministically .
Why is this transition inevitable? � � It’s easy for many to accept without argument that all electronics will be connected and software based . But why is this so? � Technological progress in the presence of genuine commercial competition demands that, over time, new products increase in value while maintaining, or reducing, the price for those products. � Only economically sustainable if new features can be developed and deployed profitably. � How? Reuse! � No technology enables reuse quite like software. � Software-defined feature sets enable electronics of all kinds to exhibit qualitatively superior cost savings relative to hardware- based feature sets.
Internet Connectivity � � Internet connectivity enables � new features in deployed systems, � communications-oriented activities; � the command and control of deployed electronics. Video: The Internet of Things http://www.youtube.com/watch?v=sfEbMV295Kk
What range of embedded systems exists? �
Examples � � Cell phone � Printer � Automobile: engine, brakes, dash, etc. � Airplane: engine, flight controls, nav/comm. � Digital television � Household appliances 8
Application examples � � Simple control: front panel of microwave oven, etc. � Canon EOS 3 has three microprocessors. � 32-bit RISC CPU runs autofocus and eye control systems. � Digital TV: programmable CPUs + hardwired logic for video/audio decode, menus, etc. 9
Automotive embedded systems � � Today’s high-end automobile may have 100 microprocessors: � 4-bit microcontroller checks seat belt; � microcontrollers run dashboard devices; � 16/32-bit microprocessor controls engine. 10
Biomedical embedded systems � 11
Modern transportation systems � Embedding computing system design skills are useful for many types of systems. 12
Military HPEC applications � High Performance Embedded Computing Handbook - A Systems Perspective - Martinez (2008) TFLOPS = Trillion Floating Point Operations per Second 13 UAV: Unmanned aerial vehicle SBR: Spectral band replication
Characteristics of embedded systems � � Sophisticated functionality � Real-time operation � Low manufacturing cost � Low power � Designed to tight deadlines by small teams 14
Functional complexity � � Often have to run sophisticated algorithms or multiple algorithms. � Automobile engine control: performance optimization while minimizing pollution and fuel utilization � Often provide sophisticated user interfaces. � Moving maps in GPS 15
Real-time operation � � Must finish operations by deadlines. � Hard real time: missing deadline causes failure. � Soft real time: missing deadline results in degraded performance. � Many systems are multi-rate: must handle operations at widely varying rates. � Prime example: multimedia � Audio and video run at very different rates 16
Non-functional requirements � � Many embedded systems are mass-market items that must have low manufacturing costs. � Limited memory, microprocessor power, etc. � Power consumption is critical in battery-powered devices. � Excessive power consumption increases system cost even in wall-powered devices. 17
Design teams � � Often designed by a small team of designers. � Often must meet tight deadlines. � 6 month market window is common. � Can’t miss back-to-school window for calculator. 18
Why use microprocessors? � � Alternatives: field-programmable gate arrays (FPGAs), custom logic, etc. � Microprocessors are often very efficient: can use same logic to perform many different functions. � Microprocessors simplify the design of families of products. 19
The performance paradox � � Microprocessors use much more logic to implement a function than does custom logic. � But microprocessors are often at least as fast: � heavily pipelined; � large design teams; � aggressive VLSI technology. CORTEX-A8 Processor Based Mobile Core 20
Power � � Custom logic uses less power, but CPUs have advantages: � Modern microprocessors offer features to help control power consumption. � Software design techniques can help reduce power consumption. � Heterogeneous systems: some custom logic for well-defined functions, CPUs+software for everything else. 21
Platforms � � Embedded computing platform: hardware architecture + associated software. � Many platforms are multiprocessors. � Examples: � Single-chip multiprocessors for cell phone baseband. � Automotive network + processors. The cell phone may, in fact, be the next computing platform… 22
The physics of software � � Computing is a physical act. � Software doesn’t do anything without hardware. � Executing software consumes energy, requires time. � To understand the dynamics of software (time, energy), we need to characterize the platform on which the software runs. 23
Challenges in embedded system design � � How much hardware do we need? � How big is the CPU? Memory? � How do we meet our timing specifications? � Faster hardware or cleverer software? � How do we minimize power? � Turn off unnecessary logic? Reduce memory accesses? Reduce clock frequency? 24
Challenges, etc. � � Does it really work? The dependability issue � Is the specification correct? � Does the implementation meet the spec? � How do we test for real-time characteristics? � How do we test on real data? � How do we work on the system? � Observability, controllability? � What is our development platform? 25
What does “performance” mean? � � In general-purpose computing, performance often means execution time or throughput, may not be well-defined. � In real-time systems, performance means meeting deadlines. � Missing the deadline by even a little is bad. � Finishing ahead of the deadline may not help. 26
Characterizing performance � � We need to analyze the system at several levels of abstraction to understand performance: � CPU � Platform � Program � Task � Multiprocessor 27
Design methodologies � � A procedure for designing a system � Understanding your methodology helps you ensure you didn’t skip anything. � Compilers, software engineering tools, computer- aided design (CAD) tools, etc., can be used to: � help automate methodology steps; � keep track of the methodology itself. � Make it much easier for members of a design team to communicate 28
Design goals � � Performance � Overall speed, deadlines � Functionality and user interface � Manufacturing cost � Power consumption � Other requirements (physical size, etc.) 29
Recommend
More recommend