new trends in embedded systems

62
 Linux For Embedded Systems For rabs Ahmed ElArabawy New Trends in Embedded Systems

Upload: sheimy20004240

Post on 08-Oct-2015

14 views

Category:

Documents


0 download

DESCRIPTION

New Trends in Embedded Systems

TRANSCRIPT

  • Linux For Embedded Systems For Arabs

    Ahmed ElArabawy

    New Trends in Embedded Systems

  • Myths on Embedded Systems

    More Hardware than Software

    Applications are Trivial

    Interfacing with sensors

    Measuring temperature, pressure, light,

    Controlling a motor

    Controlling some light switches

    etc.

    No need for Operating System support

    Why do we needs an OS this is Just an Embedded System

    Code in low level languages

    Some even consider all in Assembly

    Code fully customized on Hardware

    The center piece is the hardware, and SW will be tailored to it

    Code is very close to the Hardware

  • Is this True ??

    This impression is TRUE in some embedded systems

    But not true for a great portion of the market

    The reason for this impression

    Education (No advanced embedded system courses)

    Toy projects and hobbyists (most focus on microcontrollers)

    Cost of Hardware

    Background

    Application

    Limited exposure to industry

  • Reality is ..

    Most embedded systems are much more sophisticated, Use of multicore is becoming very common

    Multi-core can be homogeneous or heterogeneous

    Big.Little Architecture

    Dedicated cores to manage operation of the other cores

    Special H/W Accelerators for low level functionality

    Use of Operating Systems is unavoidable most of the time Asymmetric Multi-Processing (AMP)

    Each core is running its own OS

    Symmetric Multi-Processing (SMP) One OS is running on multiple cores

    Hybrid

    S/W is the most sophisticated element and key differentiator

    Sometimes, portability of the SW takes priority over efficiency

  • This Lecture

    I want to break this myth, and try to show the other side of Embedded Systems

    I will address some of the Industries using Embedded Systems

    I Will try to show some new trends, and the motivation for them

  • What is an Embedded System ?

    An embedded system is a computer system embedded in a device with a dedicated function

    This is different from the traditional, general purpose computer systems

  • What is an Embedded System?

    It is a computing system that performs a specific task (not a general purpose computer)

    A lot of times (but not always), It runs in a restricted resources environment, Power limited (battery operated devices)

    Processing/Memory limited

    Cost limited (inside the device, and not just a computer for multiple tasks)

    Size limited (no space for large heat-sink and a cooling fan)

    Display size limited

    Most of the time it targets real time objectives, this means, It needs to be fast and efficient

    It needs to be predictable (execution time known ahead, and almost constant)

  • APPLICATIONS OF EMBEDDED SYSTEMS

  • Hand Held Devices

    Smart Phones

    Tablets

    e-Readers

  • Robotics

  • Automotive

  • Military

  • Networking Devices

  • And Other Gadgets

  • CASE STUDY THE SMART PHONE

  • Under the Hood.

  • Simplified Smart Phone Architecture

    Responsible for: - Applications - TCP/IP networking - Audio/Video Processing - 2D/3D Graphics

    Responsible for ( Communication Stacks) - Cellular (2G/3G/4G) - 802.11 - Bluetooth - NFC - GPS

  • Android (Linux Based) Windows iOS

    Real RTOS: ThreadX Nucleus

  • TI-OMAP5000 Family

  • QC-SnapDragon

  • nvidia- Tegra-4

  • nvidia-Tegra K1

  • Conclusions

    Smart phones Contain two sets of cores

    Communication Processer(s)

    Run Communication Stacks (LTE, 802.11,BT,)

    Run using RTOS (ThreadX, Nucleus, )

    Application Processor(s)

    Run the functionality of the phone and any apps on it

    Run TCP/IP stack

    May contain special cores for Video Processing or 2D/3D Graphics

    Use more capable OSs

    Most SoCs today have CP and AP on separate chips

    The new trend is to combine them in the same chip

    Still they run on separate cores/OSs

    Different needs

    Priority of tasks

  • CASE STUDY 2 AUTOMOTIVE

  • Cars Are Getting Smarter

    Electronics represents 40% of total cost of a car

    90% of new car features require software

  • Embedded Systems in the Powertrain

  • Electronic Control Units (ECUs)

    ECUs are used in different functions of the car Engine Control Transmission Control Fuel Efficiency Control Electric Power Steering Speed Control Brake Control Suspension System Control Battery Management Seat Control Door Control Electric Windows Control Lighting Control Airbag Control Telemetric Control Mirror Control Security System Control Windshield Blades Control Entertainment Human-machine interface (HMI) And a lot more ..

  • Proliferation of ECUs Problem

    Number of ECUs is going out of control (more than a 100 ECU in todays car)

    Cost

    Maintenance and diagnostics

    Complexity of management

    Need of communication among them

    Power efficiency

    Heat

    Portability

    Interaction between features

    Some software was written for legacy OS

    Need to re-test with the addition of every new feature

    Time to market

  • Solution ???

    Why not aggregate these functionality into less number of ECUs

    A single Embedded Platform with all of the controllers as applications running on top of it

    This has some obstacles:

    Security concerns

    Fault isolation concerns

    Some controllers require legacy OSs

    Some controllers can not run as an application, requires full attention of the hardware

    Different needs some need real time support while others dont

    etc.

  • Embedded System Virtualization

  • Virtualization What ??

    Host Machine

    Virtual Machines (VMs)

    Virtual Machines Monitor (VMM) Hypervisor

  • Virtualization Why??

    Virtualization is used for:

    Running Multiple Operating Systems simultaneously on the host machine

    Easier Software Installations for software packages

    Testing and Disaster Recovery

    Infrastructure Consolidation

    Separation between different environment

    Fault isolation

    Security

  • Virtualization How ?

    We can achieve virtualization via the use of a Hyper-visor

    Hyper-Visor is a software that can accommodate multiple virtual machines. Each VM can have its own OS

    There are two types of Hyper-visors,

    Type One (Bare-Metal Hyper-Visor)

    Native Virtualization

    Type Two (Use of host OS)

    Hosted Virtualization

  • Virtualization How ?

    Hyper-Visor Acts as a light host OS Hyper-Visor Acts as an Application

  • Native (Bare Metal) Virtualization

  • Hosted Virtualization

  • Virtualizing HW Resources

  • Virtualization in Embedded Systems

  • Use Cases

  • RTOS & GPOS Consolidation

  • RTOS & GPOS Consolidation

  • Legacy OS Consolidation

  • Legacy OS Consolidation

  • Performance-Critical Application Separation

  • Performance-Critical Application Separation

  • Trusted/Open Application Integration

  • Applications of Virtualized Embedded Systems

  • Applications

  • Virtualization in Smartphones

  • Virtualization in Automotive

  • Virtualization in Automotive

  • Virtualization in Military Applications

  • Virtualization in Industrial Automation

  • Virtualization in Embedded Gaming

  • Limits of Virtualization

    Processing

    Extra layer from the hardware

    Two level task scheduling

  • Limits of Virtualization

    Processing Extra layer from the hardware

    Two level task scheduling

    Limited hardware support

    Preemption, L2 Cache

    Sometimes we dedicate some resources to a certain VM (CPU Affinity)

    Memory VMM foot print

    Possibly multiple Oss

    Resources Resource sharing is tricky

    Still a risk of extra bugs due to the VMM layer

  • Conclusions

    Embedded System is becoming more and more sophisticated

    Multicore is becoming more common in Embedded systems

    Multicore can be using Homogeneous or Heterogeneous cores

    The different functions within an embedded system require different needs, such as security, real time, fault isolation

    One solution to meet these different needs without the use of multiple embedded systems within the same platform is virtualization

    There are still issues to be resolved with virtualized embedded systems

  • http://Linux4EmbeddedSystems.com