Professional Documents
Culture Documents
Embedded
Embedded
Part - 1
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
Examples
Characteristics
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
Design-flow in ES Design
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
Part - 2
Architectures :- Abstract view of systems functionality - A set of implementation components and their connections
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
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
Models
Data Oriented Models :- Entry Relationship diagram - Jacksons 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 : Kahns Process Network - Communicating Sequential Processes ( CSP ) - Synchronous Data Flow model ( SDF )
Models
N numbers of Models for design representation !!! Now question is which
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....
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 )
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 designers effort Ideal language : 1-to-1 mapping between conceptual model and language construct Characteristics of commonly used conceptual models - Concurrency - Hierarchy - Synchronization
Concurrency :- Can exists at difference levels such as :# Job Level # Task Level # Statement Level # Operation Level # Bit Level - Two types of concurrency within a behavior :# Data driven # Control driven
Hierarchy :- Required for managing system complexity - Allows system modeler to focus on one sub-system at a time - Two types of hierarchy :# Structural Hierarchy # Behavioral Hierarchy # Concurrent Decomposition :- fork-join , process # Sequential Decomposition :- procedure, state machine
Communication :- Concurrent behavior exchange data - Are of two types # Shared memory model # Message passing model
Timing :- Required to implement / represent real time situation - Ex :Wait for 100 ns A <= A+1 after 200ns etc..
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
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
Partitioning Approaches
Start with all functionality in software and move portions into hardware which are time-critical and can not be allocated to software (softwareoriented partitioning) Start with all functionality in hardware and move portions into software implementation (hardwareoriented partitioning)
System Partitioning
Structural :# Implement structure and then partition ... Functional :# System partitioning in the context of HW-SW partitioning is known as functional partitioning # Approach:- Systems functionality is described as collection of indivisible functional objects # Each systems 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
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
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
Component allocation
Output
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.
B A C
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