SlideShare une entreprise Scribd logo
1  sur  45
Embedded System, A Brief
Introduction
Presented by
Subash Chandra Nayak
01EC3010, IIT Kharagpur
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
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
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
Models and Architecture
• Models :- Conceptual view of system’s functionality
- A set of functional objects and rules for composing these
objects.

• Architectures :- Abstract view of system’s 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 and Modeling
•

Models :- Conceptual views of system’s functionality ; A set of functional objects and

•

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

rules for composing these objects
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….
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
- 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 )
Models
• N numbers of Models for design representation !!! Now
question is 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....
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 designer’s effort
• Ideal language : 1-to-1 mapping between conceptual model
and language construct
• Characteristics of commonly used conceptual models
- Concurrency
- Hierarchy
- Synchronization
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
# Task Level
# Statement Level
# Operation Level
# Bit Level
- Two types of concurrency within a behavior :# Data driven
# Control driven
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
# Behavioral Hierarchy
# Concurrent Decomposition :- fork-join , process
# Sequential Decomposition :- procedure, state machine
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
# Message passing model
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 :- by reset , fork-join etc...
# Data dependent :- synchronization by :# Common event
# Status detection
# Common variable
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..
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
Specification Languages
Examples : A comparison
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
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
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:- 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
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
Binding Software
to 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
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
Issues in Partitioning (cont.)
High Level Abstraction

Decomposition of functional objects
• Metrics and estimations
• Partitioning algorithms
• Objective and closeness functions
Component allocation

Outpu
t
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
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
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
System Component
Allocation
• 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
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
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

A, B - Local minima
C - Global minimum
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
Functional Partitioning Algorithms
• For Hardware :# BUD
# Aparty

• For Systems :#
#
#
#

Vulcan I
Vulcan II
Cosyma
SpecSyn
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
Embedded

Contenu connexe

Tendances

Mba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareMba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareRai University
 
Software testing part
Software testing partSoftware testing part
Software testing partPreeti Mishra
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Radical step in computer architecture
Radical step in computer architectureRadical step in computer architecture
Radical step in computer architectureARCCN
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-designAhmad sohail Kakar
 
parallel programming models
 parallel programming models parallel programming models
parallel programming modelsSwetha S
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssadPreeti Mishra
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigmsIvano Malavolta
 
EE5440 – Computer Architecture - Lecture 3
EE5440 – Computer Architecture - Lecture 3EE5440 – Computer Architecture - Lecture 3
EE5440 – Computer Architecture - Lecture 3Dilawar Khan
 
Methodologies and flows for chip design
Methodologies and flows for chip designMethodologies and flows for chip design
Methodologies and flows for chip designDerek Pappas
 
Improvements of Funcional Safety for ES.pdf
Improvements of Funcional Safety for ES.pdfImprovements of Funcional Safety for ES.pdf
Improvements of Funcional Safety for ES.pdfVisioneerUG
 
Motivation for multithreaded architectures
Motivation for multithreaded architecturesMotivation for multithreaded architectures
Motivation for multithreaded architecturesYoung Alista
 
08. networking-part-2
08. networking-part-208. networking-part-2
08. networking-part-2Muhammad Ahad
 
CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)Dilawar Khan
 

Tendances (18)

Mba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareMba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer software
 
Software testing part
Software testing partSoftware testing part
Software testing part
 
Architec design introduction
Architec design introductionArchitec design introduction
Architec design introduction
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Radical step in computer architecture
Radical step in computer architectureRadical step in computer architecture
Radical step in computer architecture
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-design
 
parallel programming models
 parallel programming models parallel programming models
parallel programming models
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
Ch10
Ch10Ch10
Ch10
 
EE5440 – Computer Architecture - Lecture 3
EE5440 – Computer Architecture - Lecture 3EE5440 – Computer Architecture - Lecture 3
EE5440 – Computer Architecture - Lecture 3
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Methodologies and flows for chip design
Methodologies and flows for chip designMethodologies and flows for chip design
Methodologies and flows for chip design
 
Improvements of Funcional Safety for ES.pdf
Improvements of Funcional Safety for ES.pdfImprovements of Funcional Safety for ES.pdf
Improvements of Funcional Safety for ES.pdf
 
Motivation for multithreaded architectures
Motivation for multithreaded architecturesMotivation for multithreaded architectures
Motivation for multithreaded architectures
 
08. networking-part-2
08. networking-part-208. networking-part-2
08. networking-part-2
 
CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)
 

En vedette (18)

Slides cao
Slides caoSlides cao
Slides cao
 
C sharp notes
C sharp notesC sharp notes
C sharp notes
 
i_os_development_environment
i_os_development_environmenti_os_development_environment
i_os_development_environment
 
Cloudcomputingit703 130915004442-phpapp01
Cloudcomputingit703 130915004442-phpapp01Cloudcomputingit703 130915004442-phpapp01
Cloudcomputingit703 130915004442-phpapp01
 
Caqa5e ch1 with_review_and_examples
Caqa5e ch1 with_review_and_examplesCaqa5e ch1 with_review_and_examples
Caqa5e ch1 with_review_and_examples
 
Classical cryptography1
Classical cryptography1Classical cryptography1
Classical cryptography1
 
Des1
Des1Des1
Des1
 
Firewall
FirewallFirewall
Firewall
 
coloring method
 coloring method coloring method
coloring method
 
Alifeofinspiration nelsonmandela1918-2013-131205232125-phpapp02
Alifeofinspiration nelsonmandela1918-2013-131205232125-phpapp02Alifeofinspiration nelsonmandela1918-2013-131205232125-phpapp02
Alifeofinspiration nelsonmandela1918-2013-131205232125-phpapp02
 
Sp800 94.pdf
Sp800 94.pdfSp800 94.pdf
Sp800 94.pdf
 
Android ax app wcf
Android ax app wcfAndroid ax app wcf
Android ax app wcf
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
3 a. hil climbing
3 a. hil climbing3 a. hil climbing
3 a. hil climbing
 
Nelson Mandela
Nelson Mandela Nelson Mandela
Nelson Mandela
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
 
Aes
AesAes
Aes
 
Advanced databases -client /server arch
Advanced databases -client /server archAdvanced databases -client /server arch
Advanced databases -client /server arch
 

Similaire à Embedded

Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Atv Reddy
 
Embedded system
Embedded systemEmbedded system
Embedded systemmangal das
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Atv Reddy
 
Embedded system design challenges
Embedded system design challenges Embedded system design challenges
Embedded system design challenges Aditya Kamble
 
architectural design
 architectural design architectural design
architectural designPreeti Mishra
 
Introduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsIntroduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsSiva Kumar
 
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...KumarSuman24
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibAndrew Coleman
 
System design techniques and networks
System design techniques and networksSystem design techniques and networks
System design techniques and networksRAMPRAKASHT1
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.pptKalsoomTahir2
 
--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppteddielyndacanay0
 
Different approaches to software design
Different approaches to software designDifferent approaches to software design
Different approaches to software designSandeep Kumar Nayak
 
Se ii unit3-architectural-design
Se ii unit3-architectural-designSe ii unit3-architectural-design
Se ii unit3-architectural-designAhmad sohail Kakar
 
IncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdfIncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdfIncQuery Labs
 
Hardware Software Codesign
Hardware Software CodesignHardware Software Codesign
Hardware Software Codesigndestruck
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureAhmed Misbah
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
The art of architecture
The art of architectureThe art of architecture
The art of architectureADDQ
 

Similaire à Embedded (20)

Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02
 
Embedded system design challenges
Embedded system design challenges Embedded system design challenges
Embedded system design challenges
 
architectural design
 architectural design architectural design
architectural design
 
Introduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsIntroduction to embedded computing and arm processors
Introduction to embedded computing and arm processors
 
Chap 03.pdf
Chap 03.pdfChap 03.pdf
Chap 03.pdf
 
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
WINSEM2023-24_BCSE429L_TH_CH2023240501528_Reference_Material_III_S3-Homoheter...
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
System design techniques and networks
System design techniques and networksSystem design techniques and networks
System design techniques and networks
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
 
--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt
 
Different approaches to software design
Different approaches to software designDifferent approaches to software design
Different approaches to software design
 
Se ii unit3-architectural-design
Se ii unit3-architectural-designSe ii unit3-architectural-design
Se ii unit3-architectural-design
 
IncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdfIncQuery-Integrate22-20220607.pdf
IncQuery-Integrate22-20220607.pdf
 
Hardware Software Codesign
Hardware Software CodesignHardware Software Codesign
Hardware Software Codesign
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
The art of architecture
The art of architectureThe art of architecture
The art of architecture
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 

Dernier (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Embedded

  • 1. Embedded System, A Brief Introduction Presented by Subash Chandra Nayak 01EC3010, IIT Kharagpur
  • 3. 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
  • 6. 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
  • 7. 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
  • 9. 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
  • 11. Models and Architecture • Models :- Conceptual view of system’s functionality - A set of functional objects and rules for composing these objects. • Architectures :- Abstract view of system’s functionality - A set of implementation components and their connections
  • 12. 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
  • 13. Models and Modeling • Models :- Conceptual views of system’s functionality ; A set of functional objects and • 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 rules for composing these objects
  • 14. 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….
  • 15. 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
  • 16. 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 )
  • 17. Models • N numbers of Models for design representation !!! Now question is 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....
  • 18. 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 )
  • 19. 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
  • 20. 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 # Task Level # Statement Level # Operation Level # Bit Level - Two types of concurrency within a behavior :# Data driven # Control driven
  • 21. 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 # Behavioral Hierarchy # Concurrent Decomposition :- fork-join , process # Sequential Decomposition :- procedure, state machine
  • 22. 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 # Message passing model
  • 23. 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 :- by reset , fork-join etc... # Data dependent :- synchronization by :# Common event # Status detection # Common variable
  • 24. 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..
  • 25. 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
  • 27.
  • 28. 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
  • 29. 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
  • 30. 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)
  • 31. 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
  • 32. 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
  • 33. Binding Software to 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
  • 34. 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
  • 35. Issues in Partitioning (cont.) High Level Abstraction Decomposition of functional objects • Metrics and estimations • Partitioning algorithms • Objective and closeness functions Component allocation Outpu t
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. System Component Allocation • 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
  • 40. 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
  • 41. 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 A, B - Local minima C - Global minimum
  • 42. 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
  • 43. Functional Partitioning Algorithms • For Hardware :# BUD # Aparty • For Systems :# # # # Vulcan I Vulcan II Cosyma SpecSyn
  • 44. 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