Embedded

45
Embedded System, A Brief Introduction Presented by Subash Chandra Nayak 01EC3010, IIT Kharagpur

description

 

Transcript of Embedded

Page 1: Embedded

Embedded System, A Brief Introduction

Presented bySubash Chandra Nayak

01EC3010, IIT Kharagpur

Page 2: Embedded

Part - 1

Page 3: Embedded

Introduction

Embedded Systems :-Application-specific systems which contain hardware and software tailored for a particular task and are generally part of a larger system (e.g., industrial controllers)

• Characteristics– Are dedicated to a particular application– Include processors dedicated to specific functions– Represent a subset of reactive (responsive to external inputs)

systems– Contain real-time constraints– Include requirements that span:

• Performance• Reliability• Form factor

Page 4: Embedded

Examples

Page 5: Embedded

Characteristics

Page 6: Embedded

Concepts of co-design

• Codesign– The meeting of system-level objectives by exploiting the

trade-offs between hardware and software in a system through their concurrent design

• Key concepts– Concurrent: hardware and software developed at the

same time on parallel paths– Integrated: interaction between hardware and software

developments to produce designs that meet performance criteria and functional specifications

Page 7: Embedded

Essential components and considerations

• Essential components :-

- Microprocessor / DSP core

- Sensors

- Converter ( A-D and D-A )

- Actuators

- Memory (on-chip and off-chip )

- Communication path with interfacing environment

• Essential considerations :-

- Response time ;- ( Real time system )

- Area, Cost, Power, Portability, Fault-tolerance

Page 8: Embedded

Design-flow in ES Design

Page 9: Embedded

A mix of Disciplines

• DSP, Communication, Control…..• Software Engineering• Programming Languages• Compiler and OS• Architecture, Processor and IO techniques• Parallel and Distributed computing• Real Time Systems• VLSI CAD

Page 10: Embedded

Part - 2

Page 11: Embedded

Models and Architecture

• Models :-Models :- - Conceptual view of system’s functionality

- A set of functional objects and rules for composing these objects.

• Architectures :-Architectures :- - Abstract view of system’s functionality

- A set of implementation components and their connections

Page 12: Embedded

Modeling : Introduction

• Modeling starts with System Specification

• System Specification : Main purpose : To provide clear and unambiguous description of the system function, and to provide a documentation of initial design process

• It supports diverse models of computation• It allows the application of CAD tools for design space

exploration, partitioning, SW-HW synthesis, validation and testing

• It should not constrain the implementation options

Page 13: Embedded

Models and Modeling

• Models :- Conceptual views of system’s functionality ; A set of functional objects and rules for composing these objects

• One of the keys to a GOOD hardware/software Codesign process is a unified representation the allows the functionality of the system (at various levels of abstraction) to be specified in a manner that is “unbiased” towards either a hardware or software implementation.

• Unified Representation –– A representation of a system that can be used to describe its functionality

independent of its implementation in hardware or software– Allows hardware/software partitioning to be delayed until trade-offs can be made– Typically used at a high-level in the design process

• Provides a simulation environment after partitioning is done, for both hardware and software designers to use to communicate

• Supports cross-fertilization between hardware and software domains

Page 14: Embedded

Models And Modeling

• Models are used for design representation

• Design representation can be of three types

- Behavioral

- Physical

- Structural

• There are various methods of Designing ES namely

- Capture and Simulate : Schematic capture , simulation

- Describe and Synthesis : HDL , Behavioral and Logic synthesis

- Specify-Explore-Rene : Executable specification and other formal methods….

Page 15: Embedded

Models

• State Oriented Models :- - FSM : Melay and Moore models - Petri Nets - Hierarchical Concurrent FSM ( HCFSM )

• Activity Oriented Models :- - Data Flow Graph ( DFG ) - Flow Chart / Control Flow Graph ( CFG )

• Structure Oriented Models :- - Components Connectivity Diagrams - RT net lists, Gate net lists

Page 16: Embedded

Models

• Data Oriented Models :- - Entry Relationship diagram - Jackson’s Diagram • Heterogeneous Models :- - Control / Data Flow Graph - Structure Chart - Programming Languages : C, C++, Java, Verilog, VHDL, Esterel,

SDL (Speciation and Description Language), CSP (Communicating Sequential Process), SpecCharts, StateCharts etc...

- Object Oriented Paradigm - Program state Machine - Queuing model - Process Networks : Kahn’s Process Network - Communicating Sequential Processes ( CSP ) - Synchronous Data Flow model ( SDF )

Page 17: Embedded

Models

• NN numbers of Models for design representation !!! Now

question is which model to choose ???which model to choose ???

• DSP apps uses Data flow Models• Control Intensive apps FSM Models• Similarly Event driven apps uses Reactive Models• Finally the choice of models largely depends on

personal tastes, Application Domains, Availability of software and tools etc....

Page 18: Embedded

Architectures

• We must be clear about the architecture that we are going to use for design of ES

• It has also got a wide variety of choices, to be chosen according to the given application.

• The choices are as follows• Application-specific Architecture :- - Controller Architecture - Datapath Architecture - Finite state machine with datapath

• General Purpose Architecture :- - CISC - RISC - Vector machine - VLIW ( Very Long Instruction Word Computer )

Page 19: Embedded

System Specification

• For every design there exists an conceptual view• Conceptual view depends on application

- Computation : Conceptualize as a Program

- Controller : Conceptualize as a FSM• Goal of specification language : To capture conceptual view

with minimum designer’s effort• Ideal language : 1-to-1 mapping between conceptual model

and language construct• Characteristics of commonly used conceptual models

- Concurrency

- Hierarchy

- Synchronization

Page 20: Embedded

Specification Language Requirements I

• A good ES specification Language should have a bunch of feature supported such as :-

• Concurrency :- - Can exists at difference levels such as :- # Job Level# Job Level # Task Level# Task Level # Statement Level# Statement Level # Operation Level# Operation Level # Bit Level# Bit Level - Two types of concurrency within a behavior :- # Data driven# Data driven # Control driven# Control driven

Page 21: Embedded

Specification Language Requirements II

• State Transitions :-

- System are often modeled as state-based, e.g. Controller

- difficult to capture using programming construct

• Hierarchy :-

- Required for managing system complexity

- Allows system modeler to focus on one sub-system at a time

- Two types of hierarchy :-

# Structural Hierarchy# Structural Hierarchy

# Behavioral Hierarchy # Behavioral Hierarchy

# Concurrent Decomposition :- # Concurrent Decomposition :- fork-join , process

# Sequential Decomposition :- # Sequential Decomposition :- procedure, state machine

Page 22: Embedded

Specification Language Requirements III

• Behavioral Completion :-

- Behavior completes when all computation performed

- Advantages : Behavior can be viewed with inter-level transitions and allows natural decomposition into sequential behavior

• Communication :-

- Concurrent behavior exchange data

- Are of two types

# Shared memory model# Shared memory model

# Message passing model# Message passing model

Page 23: Embedded

Specification Language Requirements IV

• Synchronization :-

- Needed when concurrent behavior executes at different speeds

- Required when :-

# Data exchange between behavior

# Different activities must be performed simultaneously

- Types

# Control dependent :- # Control dependent :- by reset , fork-join etc...

# Data dependent :- # Data dependent :- synchronization by :-

# Common event# Common event

# Status detection# Status detection

# Common variable# Common variable

Page 24: Embedded

Specification Language Requirements V

• Exception handling :- - Occurrence of event terminates current computation

- Control transferred to appropriate next mode

- Ex :- Reset, Interrupt

• Timing :-

- Required to implement / represent real time situation

- Ex :-

Wait for 100 ns

A <= A+1 after 200ns etc..

Page 25: Embedded

Specification Languages Examples

• A good ES specification Language should support all the above characteristics of ES

• Essential Characteristics :-

# State Transition

# Exceptions

# Behavioral Hierarchy

# Concurrency

# Programming Construct

# Behavioral Completion

• Some commonly used languages for ES specification :-

VHDL, Verilog, Esterel, SDL, CSP, SpecChart, StateChart

Page 26: Embedded

Specification Languages Examples : A comparison

Page 27: Embedded
Page 28: Embedded

Hardware/Software Partitioning

• Definition– The process of deciding, for each subsystem, whether the

required functionality is more advantageously implemented in hardware or software

• Goal– To achieve a partition that will give us the required

performance within the overall system requirements (in size, weight, power, cost, etc.)

• This is a multivariate optimization problem that when automated, is an NP-hard problem

Page 29: Embedded

HW/SW Partitioning Issues

• Partitioning into hardware and software affects overall system cost and performance

• Hardware implementation

– Provides higher performance via hardware speeds and parallel execution of operations

– Incurs additional expense of fabricating ASICs

• Software implementation

– May run on high-performance processors at low cost (due to high-volume production)

– Incurs high cost of developing and maintaining (complex) software

Page 30: Embedded

Partitioning Approaches

• Start with all functionality in software and move portions into hardware which are time-critical and can not be allocated to software (software-oriented partitioning)

• Start with all functionality in hardware and move portions into software implementation (hardware-oriented partitioning)

Page 31: Embedded

System Partitioning

• Structural :- # Implement structure and then partition ...

• Functional :- # System partitioning in the context of HW-SW partitioning is known

as functional partitioning # Approach:- System’s functionality is described as collection of

indivisible functional objects # Each system’s functionality is either implemented in either

hardware or software # Advantages:- Enables better size/performance tradeoff # Uses fewer objects # Better for Algorithms / Humans # Permits HW-SW solutions # But is harder than graph partitioning

Page 32: Embedded

Partitioning Metrics

• Deterministic estimation techniques– Can be used only with a fully specified model with all data

dependencies removed and all component costs known– Result in very good partitions

• Statistical estimation techniques– Used when the model is not fully specified– Based on the analysis of similar systems and certain

design parameters• Profiling techniques

– Examine control flow and data flow within an architecture to determine computationally expensive parts which are better realized in hardware

Page 33: Embedded

Binding Softwareto Hardware

• Binding: assigning software to hardware components• After parallel implementation of assigned modules, all design

threads are joined for system integration– Early binding commits a design process to a certain course– Late binding, on the other hand, provides greater flexibility

for last minute changes

Page 34: Embedded

Issues in Partitioning

• Specification abstraction level• Granularity• System-component allocation• Metrics and estimations• Partitioning algorithms• Objective and closeness functions• Partitioning algorithms• Output• Flow of control and designer interaction

Page 35: Embedded

Issues in Partitioning (cont.)

Output

High Level Abstraction

Decomposition of functional objects

• Metrics and estimations• Partitioning algorithms• Objective and closeness functions

Component allocation

Page 36: Embedded

Specification Abstraction Levels

• Task-level dataflow graph– A Dataflow graph where each operation represents a task

• Task– Each task is described as a sequential program

• Arithmetic-level dataflow graph– A Dataflow graph of arithmetic operations along with

some control operations– The most common model used in the partitioning

techniques• Finite state machine (FSM) with datapath

– A finite state machine, with possibly complex expressions being computed in a state or during a transition

Page 37: Embedded

Specification Abstraction Levels (Cont.)

• Register transfers– The transfers between registers for each machine state are

described• Structure

– A structural interconnection of physical components– Often called a netlist

Page 38: Embedded

Granularity Issues in Partitioning

• The granularity of the decomposition is a measure of the size of the specification in each object

• The specification is first decomposed into functional objects, which are then partitioned among system components– Coarse granularity means that each object contains a large

amount of the specification. – Fine granularity means that each object contains only a

small amount of the specification• Many more objects• More possible partitions

– Better optimizations can be achieved

Page 39: Embedded

System ComponentAllocation

• The process of choosing system component types from among those allowed, and selecting a number of each to use in a given design

• The set of selected components is called an allocation– Various allocations can be used to implement a

specification, each differing primarily in monetary cost and performance

– Allocation is typically done manually or in conjunction with a partitioning algorithm

• A partitioning technique must designate the types of system components to which functional objects can be mapped– ASICs, memories, etc

Page 40: Embedded

Metrics and Estimations Issues

• A technique must define the attributes of a partition that determine its quality– Such attributes are called metrics

• Examples include monetary cost, execution time, communication bit-rates, power consumption, area, pins, testability, reliability, program size, data size, and memory size

• Closeness metrics are used to predict the benefit of grouping any two objects

• Need to compute a metric’s value – Because all metrics are defined in terms of the structure (or

software) that implements the functional objects, it is difficult to compute costs as no such implementation exists during partitioning Two key metrics are used in hardware/software partitioning

– Performance: Generally improved by moving objects to hardware

– Hardware size: Hardware size is generally improved by moving objects out of hardware

Page 41: Embedded

Partitioning Approaches

• Traditional Approaches– Take Objective function as a weighted sum along

with constrains considerations– Aim:- To minimize Power, Delay, cost, Area etc...– Here is the objective function values which is

obviously multimodal with multiple maxima and minima.

A

B

C

A, B - Local minimaC - Global minimum

Page 42: Embedded

Basic partitioning algorithms

• Clustering and multi-stage clustering [Joh67, LT91]

• Group migration (a.k.a. min-cut or Kernighan/Lin) [KL70, FM82]

• Ratio cut [KC91]

• Simulated annealing [KGV83]

• Genetic evolution

• Integer linear programming

Page 43: Embedded

Functional Partitioning Algorithms

• For Hardware :-For Hardware :- # BUD# BUD

# Aparty# Aparty

• For Systems :-For Systems :- # Vulcan I# Vulcan I

# Vulcan II# Vulcan II

# Cosyma# Cosyma

# SpecSyn# SpecSyn

Page 44: Embedded

Summary

• Partitioning heavily influence design quality• Functional partitioning is necessary• Executable specification enables

# Automation

# Exploration

# Documentation• Variety of algorithm exist• Variety of techniques exist for different applications

Page 45: Embedded