Embedded Intro India05


Published on

Introduction to role of embedded systems in society

Published in: Education, Technology, Business
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Embedded Intro India05

    1. 1. Embedded Computing Systems Rajesh Gupta, UC San Diego, CA mesl . ucsd . edu
    2. 2. Outline: what are embedded systems and what is so interesting about them? <ul><li>What are embedded systems? </li></ul><ul><li>Embedded system characteristics </li></ul><ul><li>Challenges in Embedded Systems research and education </li></ul>
    3. 3. &quot;Embedded Everywhere&quot;
    4. 4. <ul><li>Generally, part of a larger system that may not be a “computer” </li></ul><ul><li>works in a reactive , time- and energy-constrained environment. </li></ul><ul><li>employs a combination of hardware & software (a “computational engine”) to perform a specific function; </li></ul><ul><ul><li>Software is used for providing features and flexibility </li></ul></ul><ul><ul><li>Hardware = {Processors, ASICs, Memory,...} is used for performance (& sometimes security) </li></ul></ul>An Embedded Computing System Application Specific Gates Processor Cores Analog I/O Memory DSP Code
    5. 5. Example: Automotive Embedded Systems Dominated by software and networking complexities
    6. 6. Control, processing, networking, … <ul><li>Embedded, reactive controllers, for </li></ul><ul><ul><li>Central locking system </li></ul></ul><ul><ul><li>Crash management </li></ul></ul><ul><ul><li>Power windows & seats </li></ul></ul><ul><ul><li>Airbag controller </li></ul></ul><ul><ul><li>etc. </li></ul></ul>90 % of all innovations are SW-driven <ul><li>Embedded processing for </li></ul><ul><ul><li>Multimedia system </li></ul></ul><ul><ul><li>Navigation system </li></ul></ul><ul><li>Infotainment alone uses up to 20 processors </li></ul>
    7. 7. Challenges in automotive embedded software <ul><li>Highly complex , networked , and distributed </li></ul><ul><li>Consider processing </li></ul><ul><ul><li>70-80 electronic control units (ECUs) supporting hundreds of features </li></ul></ul><ul><ul><li>ECUs delivered by multiple suppliers, with their own software chains </li></ul></ul><ul><li>Consider networking </li></ul><ul><ul><li>Separate, integrated networks for power train, chassis, security, MMI, multimedia, body/comfort functions </li></ul></ul><ul><ul><li>Increasing interaction beyond car’s boundaries with devices, networks </li></ul></ul><ul><li>Software development challenges: </li></ul><ul><ul><li>hardware independence, information interdependence among subsystems, system composition, validation. </li></ul></ul>
    8. 8. But that is just the beginning… Embedded Systems come in many (more) shapes.
    9. 9. Intel Montecito <ul><li>Two 2-threaded 64b EPIC cores </li></ul><ul><ul><li>Two threads hide memory latency on a single thread (TMT) </li></ul></ul><ul><li>Total of 26.5 MB caches </li></ul><ul><li>1.72 Billion transistors, 596 mm 2 , 90nm </li></ul>
    10. 10. 130 W; GBps <ul><li>Generated clock frequency is a function of the measured voltage </li></ul><ul><ul><li>-- 3X gain in power consumption </li></ul></ul>MicroController 16 bit Instr 32 bit datapath 4K*16bit program 4K*8bit data 1 GHz, 5-stage pipe Real-time scheduler Power control Temperature control Calibration
    11. 11. Computers + Radios = Mobile Platforms
    12. 12. Sensor Nodes as Wireless Networked Embedded Systems Source: Estrin, MOBICOM’03
    13. 13. Indeed, computing nodes are changing rapidly <ul><li>New computing nodes and networks are no longer monolithic entities </li></ul><ul><ul><li>High-end processing migrating to mobile computing, sensor computing </li></ul></ul><ul><ul><li>Very likely sources of innovations in future for mainstream computing. </li></ul></ul>Pointer to major sensor node platforms at http://mesl.ucsd.edu/gupta/SPOTSurl.html
    14. 14. Outline: what are embedded systems and what is so interesting about them? <ul><li>What are embedded systems? </li></ul><ul><li>Embedded system characteristics </li></ul><ul><li>Challenges in Embedded Systems research and education </li></ul>
    15. 15. <ul><li>Application Specific </li></ul><ul><ul><li>Perform a single or tightly knit set of functions; </li></ul></ul><ul><ul><li>(not usually &quot;general purpose”) </li></ul></ul><ul><li>Constrained </li></ul><ul><ul><li>Power, cost and reliability are often important attributes that influence design; </li></ul></ul><ul><li>Application specific processor design can be a significant component of some embedded systems. </li></ul><ul><ul><li>Customization yields lower area, power, cost, ... </li></ul></ul><ul><ul><li>Higher HW/software development overhead </li></ul></ul><ul><ul><ul><ul><li>design, compilers, debuggers, ... </li></ul></ul></ul></ul>Typical Characteristics
    16. 16. Real-Time Requirements <ul><li>Hard-real time systems: where there is a high penalty for missing a deadline </li></ul><ul><ul><li>e.g., control systems for aircraft/space probes/nuclear reactors; refresh rates for video, or DRAM. </li></ul></ul><ul><li>Soft real-time systems: where there is a steadily increasing penalty if a deadline is missed. </li></ul><ul><ul><ul><li>e.g., laser printer: rated by pages-per-minute, but can take differing times to print a page (depending on the &quot;complexity&quot; of the page) without harming the machine or the customer. </li></ul></ul></ul><ul><ul><li>However, the rate at which the image is delivered to the drum is a hard deadline, since the image will be lost otherwise. </li></ul></ul><ul><li>Many systems have hard-deadlines imposed by the operations of peripherals, e.g., DRAM (refresh rate), disk (spin rate), cameras (scan rate), displays (refresh rate). </li></ul>
    17. 17. <ul><li>Modelling </li></ul><ul><ul><li>the system to be designed, and experimenting with algorithms involved; </li></ul></ul><ul><li>Refining (or “partitioning”) </li></ul><ul><ul><li>the function to be implemented into smaller, interacting pieces; </li></ul></ul><ul><li>HW-SW partitioning: Allocating </li></ul><ul><ul><li>elements in the refined model to either (1) HW units, or (2) SW running on custom hardware or a general microprocessor. </li></ul></ul><ul><li>Scheduling </li></ul><ul><ul><li>the times at which the functions are executed. This is important when several modules in the partition share a single hardware unit. </li></ul></ul><ul><li>Mapping (Implementing) </li></ul><ul><ul><li>a functional description into (1) software that runs on a processor or (2) a collection of custom, semi-custom, or commodity HW. </li></ul></ul>ES Design: Task Ingredients Environ -ment Processor Analog I/O Memory ASIC DSP Code
    18. 18. Scope and Ingredients of ES Design Tasks <ul><li>The specific issues that need to be addressed in ES design depend to some extent on </li></ul><ul><ul><li>the scope of the application at hand, and </li></ul></ul><ul><ul><li>the richness of the system delivered </li></ul></ul>Dedicated system Digital Signal Processors General purpose processors Single Task General Task Mix Correlated Task Mix System + Application SW + SW environment Single Chip System + Applications Engine Control DFT
    19. 19. Programming with Time <ul><li>E. G., Computing at the intersection of two different time topologies </li></ul>/* monitor temperature */ do forever { measure temp; if (temp < setting) start furnace; else if (temp > setting + delta) stop furnace; } /* monitor time of day */ do forever { measure time; if (6:00am) setting = 72; else if (11:00pm) setting = 60; } /* monitor keypad */ do forever { check keypad; if (raise temp) setting++; else if (lower temp) setting--; } Computing system Environment Sense Actuate
    20. 20. Programming with Location <ul><li>Enabled by technology advances </li></ul><ul><ul><li>Outdoor, indoor, absolute, relative, assertive </li></ul></ul><ul><li>Infrastructure for location </li></ul><ul><ul><li>Dynamic resource discovery and binding </li></ul></ul><ul><ul><li>Transparent location updates </li></ul></ul><ul><ul><li>Monitor resources in their environment </li></ul></ul><ul><ul><li>Virtual resource naming, that is, resources referred to based on their expected location </li></ul></ul><ul><ul><li>Reactive to changes in the resource availability </li></ul></ul><ul><ul><li>Control resource usage: access timeouts. </li></ul></ul><ul><li>Programming with location </li></ul><ul><ul><li>Spatial programming: how to use the location information in spatial references </li></ul></ul>
    21. 21. One is already seeing time in programming <ul><li>Absolute and relative delays </li></ul><ul><ul><li>Delays as uninterruptible actions </li></ul></ul><ul><ul><li>Timeouts, timed procedure calls, wait selects </li></ul></ul>
    22. 22. Of course, we have seen time before… <ul><li>A process controller with following modules </li></ul><ul><ul><li>a clock tick comes every 20 ms when a clock module must run </li></ul></ul><ul><ul><li>a control module must run every 40 ms </li></ul></ul><ul><ul><li>three modules with soft constraints </li></ul></ul><ul><ul><ul><ul><li>operator display update; operator input; information logs </li></ul></ul></ul></ul><ul><li>Can be done synchronously (in one program) or asychronously through multiple tasks. </li></ul><ul><ul><li>while (1) { </li></ul></ul><ul><ul><ul><li>wait for clock; do clock module; </li></ul></ul></ul><ul><ul><ul><li>if (time for control) do control; </li></ul></ul></ul><ul><ul><ul><li>else if (time for display update) do display; </li></ul></ul></ul><ul><ul><ul><li>else if (time for operator input) do operator input; </li></ul></ul></ul><ul><ul><ul><li>else if (time for mgmnt. request) do mgmnt. output; </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><li>Must have t1 + max(t2, t3, t4, t5)  20 ms </li></ul><ul><ul><ul><li>may require splitting tasks… gets complex! </li></ul></ul></ul>
    23. 23. Multi-tasking <ul><li>Most tasks are event driven </li></ul><ul><li>Asynchronous implementation approaches </li></ul><ul><ul><li>Foreground/background systems : 2 tasks </li></ul></ul><ul><ul><li>Foreground (interrupt) </li></ul></ul><ul><ul><ul><ul><li>on interrupt { </li></ul></ul></ul></ul><ul><ul><ul><ul><li>do clock module; if (time for control) do control; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>} </li></ul></ul></ul></ul><ul><ul><li>Background </li></ul></ul><ul><ul><ul><ul><li>while (1) { </li></ul></ul></ul></ul><ul><ul><ul><ul><li>if (time for display update) do display; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>else if (time for operator input) do operator; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>else if (time for mgmnt. request) do mgmnt.; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>} </li></ul></ul></ul></ul><ul><ul><li>Decoupling relaxes constraint: t1 + t2  20 ms </li></ul></ul><ul><li>Multi-tasking: also called processes, threads </li></ul><ul><ul><li>Requires task scheduling, communication, sharing among tasks. </li></ul></ul>
    24. 24. So, then how to organize multiple tasks? <ul><li>Cyclic executive (Static table driven scheduling) </li></ul><ul><ul><li>static schedulability analysis </li></ul></ul><ul><ul><li>resulting schedule or table used at run time </li></ul></ul><ul><ul><li>TDMA-like scheduling </li></ul></ul><ul><li>Event-driven non-preemptive </li></ul><ul><ul><li>tasks are represented by functions that are handlers for events </li></ul></ul><ul><ul><li>next event processed after function for previous event finishes </li></ul></ul><ul><li>Static and dynamic priority preemptive scheduling </li></ul><ul><ul><li>static schedulability analysis </li></ul></ul><ul><ul><li>no explicit schedule constructed: at run time tasks are executed “highest priority first” </li></ul></ul><ul><ul><li>Rate monotonic, deadline monotonic, earliest deadline first, least slack </li></ul></ul>
    25. 25. Continued… <ul><li>Dynamic planning-based scheduling </li></ul><ul><ul><li>Schedulability checked at run time for a dynamically arriving task </li></ul></ul><ul><ul><li>“ admission control” </li></ul></ul><ul><ul><li>resulting schedule to decide when to execute </li></ul></ul><ul><li>Dynamic best-effort scheduling </li></ul><ul><ul><li>no schedulability checking is done </li></ul></ul><ul><ul><li>system tries its best to meet deadlines </li></ul></ul><ul><li>Extensive literature on best scheduling methods with increasing complexity of tasks and architectures. </li></ul><ul><ul><li>(Real-Time Symposiums). </li></ul></ul><ul><li>This research has had an impact on how OS’s are structured for embedded systems… </li></ul>
    26. 26. OS Classes <ul><li>General Purpose </li></ul><ul><ul><li>Open, multiple applications, memory protection, multiple units of failure </li></ul></ul><ul><ul><li>Temporally unpredictable, large overheads </li></ul></ul><ul><li>Real Time OS </li></ul><ul><ul><li>Closed, single application, no memory protection, single unit of failure, temporally predictable, small system overhead </li></ul></ul><ul><li>Consumer Electronics OS are in between </li></ul><ul><ul><li>(CE Linux): Open, multiple apps, memory protection, temporally predictable, small overhead </li></ul></ul>
    27. 27. Major OS Structures monolithic microkernel cyclic executive exo kernel
    28. 28. Outline: what are embedded systems and what is so interesting about them? <ul><li>What are embedded systems? </li></ul><ul><li>Embedded system characteristics </li></ul><ul><li>Challenges in Embedded Systems research and education </li></ul>
    29. 29. A changing ecosystem of embedded systems “ Text” Timing- Dependent Data Real-World Sensor Inputs Single- or Few- Threaded Multi-Threaded OS Kernels/ Device Drivers MS Word cat Robotics Sensor Networks Distributed, Timing Dependent System MPI/Linda Distributed Robotics Squid TCP System/Internal Uncertainty Data/External Uncertainty Jeremy Elson, Microsoft
    30. 30. In the Human Body Source: Shkel (MAE), Ikei (Biomed), Zheng (ENT), UC Irvine
    31. 31. Into Fabrics and Buildings Ember radios and networks Source: Ember Networks
    32. 32. Summary: New “Computers”, New Challenges <ul><li>Software development is a challenge with evolving processors </li></ul><ul><ul><li>How to efficiently model, compile, target applications? </li></ul></ul><ul><li>What is the right programming model for these systems? </li></ul><ul><ul><li>What is the right set of OS, middleware services and API to provide a “usable” programming model? </li></ul></ul><ul><li>Application modeling, programming for highly distributed, mobile, networked embedded systems </li></ul><ul><li>What happens in hardware versus software? </li></ul><ul><li>What is compiled and what happens dynamically? </li></ul><ul><li>What is done at the node, at the network? </li></ul><ul><li>How is awareness exploited? </li></ul><ul><ul><li>Location, Energy, Connectivity </li></ul></ul><ul><li>Getting it right means many more systems capabilities through software </li></ul><ul><ul><li>Controlling power/energy usage, functional adaptivity, reliability, re/usability, availability, … </li></ul></ul>
    33. 33. An emerging area for technical education <ul><li>The design of embedded systems draws upon several disparate disciplines in CS and EE. </li></ul><ul><li>Application domain (Signal processing, ...) </li></ul><ul><li>Software engineering (Programming Languages, Compilers) </li></ul><ul><ul><li>For implementing the software components; this can be a major component of several systems. </li></ul></ul><ul><li>VLSI (computer aided) design </li></ul><ul><ul><li>For implementing the custom and semi-custom hardware components. </li></ul></ul><ul><li>Parallel/Distributed system design </li></ul><ul><ul><li>since many embedded systems and multiprocessors are structured as a network of communicating processors; the network may be loosely coupled or tightly coupled. </li></ul></ul><ul><li>Real-time systems (Hard- & soft- real time systems) </li></ul>
    34. 34. Cal-IT2  Systems Initiative <ul><li>Part of the Cal-IT2 Core activities </li></ul><ul><li>SOC HyperIntegration Laboratory </li></ul><ul><ul><li>Equipment and support for building board-level prototypes: key CalIT2 artificats such as CalRadio </li></ul></ul><ul><ul><li>Interfaces with ASIC design, test </li></ul></ul><ul><li>Personnel supporting CalIT2 initiatives, visitors </li></ul><ul><ul><li>Our interfaces with industry projects </li></ul></ul><ul><ul><li>Engineering personnel building prototypes, demonstration activities </li></ul></ul><ul><ul><li>Cal-IT2 students </li></ul></ul><ul><li>Host projects, training and outreach </li></ul><ul><ul><li>CalRadio, Damage Prognosis, MicroFluidic Sensing </li></ul></ul>
    35. 35. Damage Prognosis in SHM <ul><li>Supported through UCSD/LANL Engineering Institute </li></ul><ul><li>Goal: Monitoring Technologies for Large Scale Structures through sensing, computational modeling and predictive analysis </li></ul><ul><li>Field prototypes </li></ul><ul><ul><li>Instrument large scale structures for continuous monitoring of structural health. </li></ul></ul>Dasgupta, Gupta, Rosing, CSE, Michael Todd, MAE and Chuck Farrar, LANL