Embedded System, A Brief Introduction

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

CMSC 611: Advanced Computer Architecture
ES Seminar1 Communicating Transaction Processes P.S. Thiagarajan National University of Singapore Joint Work with: Abhik Roychoudhury; ……
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Give qualifications of instructors: DAP
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Software Requirements Engineering
Object-Oriented Analysis and Design
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Models of Computation for Embedded System Design Alvise Bonivento.
Establishing the overall structure of a software system
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Modeling State-Dependent Objects Using Colored Petri Nets
Joshua GarrettUniversity of California, Berkeley SpecCharts: A VHDL Front-End for Embedded Systems.
Mahapatra-Texas A&M-Fall'001 Codesign Framework Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
An Introduction to Software Architecture
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS4730 Real-Time Systems and Modeling Fall 2010 José M. Garrido Department of Computer Science & Information Systems Kennesaw State University.
SOFTWARE DESIGN.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 Hardware Description Languages: a Comparison of AHPL and VHDL By Tamas Kasza AHPL&VHDL Digital System Design 1 (ECE 5571) Spring 2003 A presentation.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
System-on-Chip Design Homework Solutions
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
System-on-Chip Design Homework Solutions
An Overview of Requirements Engineering Tools and Methodologies*
Combinational Logic Design
System Design and Modeling
2. Specification and Modeling
Part 3 Design What does design mean in different fields?
Hierarchical Architecture
Chapter 1: Introduction
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Embedded System Design Specifications and Modeling
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
UML profiles.
Chapter 1 Introduction.
Essential Issues in Codesign: Models
STATE MACHINE AND CONCURRENT PROCESS MODEL
STATE MACHINE AND CONCURRENT
Presentation transcript:

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

Part - 1 Introduction

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 - 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

Specification and Modelling methods in Embedded System Part - 2 Specification and Modelling methods in Embedded System

Models and Architecture - 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 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

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 :- Activity 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 :- Heterogeneous 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 DSP apps uses Data flow 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

HW-SW Partitioning

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 (software- oriented partitioning) Start with all functionality in hardware and move portions into software implementation (hardware- oriented 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 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 Output

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. A B 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

Thank You