Hardware Software Codesign of Embedded Systems

Similar documents
Hardware Software Codesign of Embedded System

Hardware/Software Co-design

Codesign Framework. Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.

Hardware-Software Codesign. 1. Introduction

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems)

Hardware-Software Codesign. 1. Introduction

EEL 5722C Field-Programmable Gate Array Design

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999

System on Chip (SoC) Design

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Hardware/Software Codesign

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Introduction to Embedded Systems

EE382V: System-on-a-Chip (SoC) Design

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

FPGA BASED SYSTEM DESIGN. Dr. Tayab Din Memon Lecture 1 & 2

FPGA Based Digital Design Using Verilog HDL

Embedded Systems. 7. System Components

COE 561 Digital System Design & Synthesis Introduction

ELEC 5200/6200 Computer Architecture and Design Spring 2017 Lecture 1: Introduction

ECE 111 ECE 111. Advanced Digital Design. Advanced Digital Design Winter, Sujit Dey. Sujit Dey. ECE Department UC San Diego

Hardware/Software Co-Design/Co-Verification

NISC Application and Advantages

Part 2: Principles for a System-Level Design Methodology

Hardware Design and Simulation for Verification

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

Introduction to System-on-Chip

ICS 180 Spring Embedded Systems. Introduction: What are Embedded Systems and what is so interesting about them?

Cosimulation II. Cosimulation Approaches

Anand Raghunathan

Hardware/Software Partitioning for SoCs. EECE Advanced Topics in VLSI Design Spring 2009 Brad Quinton

EE382V: System-on-a-Chip (SoC) Design

Digital Systems Design. System on a Programmable Chip

Design Issues in Hardware/Software Co-Design

Evolution of CAD Tools & Verilog HDL Definition

Cosimulation II. How to cosimulate?

Introduction. Definition. What is an embedded system? What are embedded systems? Challenges in embedded computing system design. Design methodologies.

CMPE 415 Programmable Logic Devices Introduction

The Embedded computing platform. Four-cycle handshake. Bus protocol. Typical bus signals. Four-cycle example. CPU bus.

A VARIETY OF ICS ARE POSSIBLE DESIGNING FPGAS & ASICS. APPLICATIONS MAY USE STANDARD ICs or FPGAs/ASICs FAB FOUNDRIES COST BILLIONS

Lab. Course Goals. Topics. What is VLSI design? What is an integrated circuit? VLSI Design Cycle. VLSI Design Automation

Flight Computer: Managing the Complexity

The Design of Mixed Hardware/Software Systems

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Designing and Prototyping Digital Systems on SoC FPGA The MathWorks, Inc. 1

Design Verification Lecture 01

Digital Design Methodology

More Course Information

HARDWARE SOFTWARE CO-DESIGN

Design Space Exploration Using Parameterized Cores

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Testing Digital Systems I

Embedded Systems. 8. Hardware Components. Lothar Thiele. Computer Engineering and Networks Laboratory

Designing with VHDL and FPGA

COSC What is an embedded system?

Overview of SOC Architecture design

CS 211: Computer Architecture course wrapup: : goodbye to cs211!

Chapter 10 Objectives

Computer Architecture s Changing Definition

ECE332, Week 2, Lecture 3. September 5, 2007

ECE332, Week 2, Lecture 3

AC : INTRODUCING LABORATORIES WITH SOFT PROCES- SOR CORES USING FPGAS INTO THE COMPUTER ENGINEERING CURRICULUM

Electrical Engineering and Computer Sciences (EECS)

CE 435 Embedded Systems Spring 2018

Chapter 5: ASICs Vs. PLDs

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

Digital System Design Lecture 2: Design. Amir Masoud Gharehbaghi

ELCT 501: Digital System Design

A Novel Deadlock Avoidance Algorithm and Its Hardware Implementation

All MSEE students are required to take the following two core courses: Linear systems Probability and Random Processes

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

Instruction Encoding Synthesis For Architecture Exploration

Embedded Systems. Information. TDDD93 Large-Scale Distributed Systems and Networks

Ultra Depedable VLSI by Collaboration of Formal Verifications and Architectural Technologies

Computer Architecture. Fall Dongkun Shin, SKKU

EITF35: Introduction to Structured VLSI Design

Navigating the RTL to System Continuum

ECE/CS Computer Design Lab

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

Mapping Multi-Million Gate SoCs on FPGAs: Industrial Methodology and Experience

System Synthesis of Digital Systems

Hardware-Software Codesign

Design Tools for 100,000 Gate Programmable Logic Devices

Controller Synthesis for Hardware Accelerator Design

Lab #1: Introduction to Design Methodology with FPGAs part 1 (80 pts)

A Graduate Embedded System Education Program

Lecture 7: Introduction to Co-synthesis Algorithms

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Park Sung Chul. AE MentorGraphics Korea

A Top-down Hardware/Software Co-Simulation Method for Embedded Systems Based Upon a Component Logical Bus Architecture

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi. Lecture - 10 System on Chip (SOC)

Key technologies for many core architectures

Embedded Computation

Intro to High Level Design with SystemC

A Study of the Speedups and Competitiveness of FPGA Soft Processor Cores using Dynamic Hardware/Software Partitioning

System Level Design with IBM PowerPC Models

Easy Multicore Programming using MAPS

Embedded Systems: Hardware Components (part I) Todor Stefanov

Abstract. 1 Introduction. Reconfigurable Logic and Hardware Software Codesign. Class EEC282 Author Marty Nicholes Date 12/06/2003

Contents Part I Basic Concepts The Nature of Hardware and Software Data Flow Modeling and Transformation

Transcription:

Hardware Software Codesign of Embedded Systems Rabi Mahapatra Texas A&M University

Today s topics Course Organization Introduction to HS-CODES Codesign Motivation Some Issues on Codesign of Embedded System 2

Course Organization Lectures: HRBB 126, TR 11:30 am - 12:20 pm Laboratory: HRBB TBD, Instructor s office Hours: By appointment Contact: rabi@cs.tamu.edu, 5-5787 3

Course organization: Gradings Tests: 25% Projects: 50% Seminar/Term paper/assignment: 25% Labs: Team work (optional) Seminar/Term papers/project: Individual or Team of two students 4

Course policies Required to access the course web page for relevant info during the semester Class attendance is required use emails for effective communication with Instructor t all assigned papers are required materials follow lab and univ rules 5

Topics to be covered (order and details may change) 1. Codesign overview 2. Models and methodologies of system design 3. Hardware software partitioning and scheduling 4. Cosimulation, i synthesis and verifications i 5. Architecture mapping, HW-SW Interfaces and Reconfigurable computing 6. System on Chip (SoC) and NoC 7. Real-Time Embedded Systems 8. Low-power Issues 9. Software for Embedded Systems 6

Laboratory Activites Synopsys s y Design Environment FPGA based design use of Xilinx s design environment and devices (VHDL / Verilog) Can use Lab for project work Embedded Systems: PowerPC, StrongARM and Sparc s T1 and T2 Use of tools and language based on choice of projects Explore new tools in the group or open sources 7

Texts & References G Micheli, R Ernst and WWolf W.Wolf, editors, Readings in Hardware/Software Co- Design, Morgan Kaufman Publisher, 2002 Lecture notes: faculty.cs.tamu.edu/rabi/cpsc617/ Research Publications in ACM/IEEE sponsor events and journals 8

Reading assignment Giovanni De Micheli and Rajesh Gupta, Hardware/Software co-design, IEEE Proceedings, vol. 85, no.3, March 1997, pp. 349-365. 9

Introduction Digital systems designs consists of hardware components and software programs that execute on the hardware platforms Hardware-Software Codesign? 10

Outline Introduction to HW-SW Codesign Codesign Motivation Issues on Codesign of Embedded d Systems 11

Walls crumbled! Analog vs Digital Design vs Manufacturing Hardware vs Software 12

Microelectronics trends Better device technology reduced in device sizes more on chip devices > higher density higher performances 13

Microelectronics trends Higher degree of integration increased device reliability inclusion of complex designs 14

Digital Systems Judged by its objectives in application domain Performance Design and Manufacturing cost Ease of Programmability 15

Digital Systems Judged by its objectives in application domain Performance Design and Manufacturing cost Ease of Programmability It depends on both the hardware and software components 16

Hardware/Software Codesign A definition: Meeting System level objectives by exploiting the synergism of hardware and software through their concurrent design 17

Concurrent design Traditional design flow start Concurrent (codesign) flow start HW SW HW SW Designed by independent groups of experts Designed by Same group of experts with cooperation 18

Codesign motivation Trend toward smaller mask-level geometries leads to: Higher integration and cost of fabrication. Amortize hardware design over large volume productions Suggestion: Use software as a means of differentiating products based on the same hardware platform. 19

StoryofIPcores of What are these IP Cores? Predesigned, preverified silcon circuit block, usually containing 5000 gates, that can be used in building larger application on a semiconductor chip. 20

StoryofIPcores of Complex macrocells implementing instruction set processors (ISP) are available as cores Hardware ad a (core) (o Software (microkernels) Are viewed as intelectual property 21

IP core reuse Cores are standardized for reuse as system building blocks Rationale: leveraging the existing software layers including OS and applications in Embedded Systems Results: 1. Customized VLSI chip with better area/ performance/ power trade-offs 2. Systems on Silicon 22

Hardware Programmability Traditionally Hardware used to be configured at the time of manufacturing Software is variant at run time The Field Programmable Gate Arrays (FPGA) has blurred this distinction. 23

FPGAs FPGA circuits can be configured on-the-fly to implement a specific software function with better performance than on microprocessor. 24

FPGAs FPGA circuits can be configured on-the-fly to implement a specific software function with better performance than on microprocessor. FPGA can be reprogrammed to perform another specific function without changing the underlying hardware. 25

FPGAs FPGA circuits can be configured on-the-fly to implement a specific software function with better performance than on microprocessor. FPGA can be reprogrammed to perform another specific function without changing the underlying hardware. This flexibility opens new applications of digital circuits. 26

Why codesign? Reduce time to market 27

Why codesign? Reduce time to market Achieve better design Explore alternative designs Good design can be found by balancing the HW/SW 28

Why codesign? Reduce time to market Achieve better design Explore alternative designs Good design can be found by balancing the HW/SW To meet strict design constraint power, size, timing, and performance trade-offs safety and reliability system on chip 29

Distinguishing features of digital system Interrelated criteria for a system design Application Domain Hardware Technology Level of Integration Degree of Programmability 30

Application Domains General purpose computing system usually self contained and with peripherals Information processing systems 31

Application Domains General purpose computing system usually self contained and with peripherals Information processing systems Dedicated control system part of the whole system, Ex: digital controller in a manufacturing plant also, known as embedded systems 32

Embedded System Uses a computer to perform certain functions Conceived with specific application in mind examples: dash controller in automobiles, remote controller for robots, answering machines, etc. 33

Embedded Systems Uses a computer to perform certain functions Conceived with specific application in mind examples: dash controller in automobiles, remote controller for robots, answering machines, etc. User has limited access to system programming system is provided with system software during manufacturing not used as a computer 34

Degree of Programmability Most digital systems are programmed by some software programs for functionality. Two important issues related to programming: who has the access to programming? Level at which programming is performed. 35

Degree of Programmability: Accessibility Understand the role of: End users, application developers, system integrator and component manufacturers. 36

Degree of Programmability: Accessibility Understand the role of: End users, application developers, system integrator and component manufacturers. Application Developer: System to be retargetable. 37

Degree of Programmability: Accessibility Understand the role of: End users, application developers, system integrator and component manufacturers. Application Developer: System to be retargetable. System Integrator: Ensure compatibility of system components 38

Degree of Programmability: Accessibility Understand the role of: End users, application developers, system integrator and component manufacturers. Application Developer: System to be retargetable. System Integrator: Ensure compatibility of system components Component Manufactures: Concerned with maximizing product reuse 39

Degree of Programmability Example 1: Personal computer End User: Limited to application level Application Dev.: Language tools, Operating System, highlevel programming environment (off the self components) Component Manf.: Drive by bus standards, protocols etc. Observe that: coalescing the system components due to higher chip density Result: Few but more versatile system hardware components 40

Example 2. Embedded Systems End user: Limited access to programming Most software is already provided d by system integrator who could be application developer too! 41

Level of Programmability Systems can be programmed at application, instruction and hardware levels Application Level: Allows users to specify option of functionality using special language. Example: Programming VCR or automated steering control of a ship 42

Level of Programmability Instruction-level programmability Most common ways with ISA processors or DSP compilers are used in case of computers In case of embedded systems, ISA is NOT visible 43

Level of programmability Hardware level programmability configuring the hardware (after manufacturing) in the desired way. Example: Microprogramming (determine the behavior of control unit by micro program) Emulating another architecture by alternation of μp (i.e. CGRA) Some DSP implementations too Never in RISC or ISA processors 44

Programmability Microprogramming Vrs. Reconfigurability Microprogram allows to reconfigure the control unit whereas Reconfigurable system can modify both datapath and controller. 45

Programmability Microprogramming Vrs. Reconfigurability Microprogram allows reconfigure the control unit versus Reconfigurable system can modify both datapath and controller. Reconfigurability increases usability but not the performance of a system. 46

Performance and Programmability General computing applications: use of superscalar RISC architecture to improve the performance (instruction level programming) 47

Performance and Programmability General computing applications: use of superscalar RISC architecture to improve the performance (instruction level programming) Dedicated d Applications: Use of application specific designs (ASICs) for power and performance Neither reusable nor cheap! 48

Performance and Programmability General computing applications: use of superscalar RISC architecture to improve the performance (instruction level programming) Dedicated d Applications: Use of application specific designs (ASICs) for power and performance Neither reusable nor cheap! What if ASICs with embedded cores? 49

Performance and Programmability Any other solutions? How about replacing the standard processors by application specific processors that can be programmed at instruction level (ASIPs). Better power-performance than standard processor? Worse than ASICs 50

Programmability and Cost:ASIPs Cost can typically be amortized over larger volume than on ASICs (with multiple applications using ASIPs). Ease to update the products and engineering changes through programming the HW, However, includes compiler as additional cost 51

Hardware Technology Choice of hardware to implement the design affects the performance and cost VLSI technology (CMOS or bipolar, scale of integration and feature size etc.) can affect the performance and cost. 52

Hardware Technology: FPGAs Performance is an order of magnitude less than corresponding non- programmable technology with comparable mask size For high volume production, these are more expensive than ASICs 53

Level of Integration Integration leads to reducing number of parts, which means, increased reliability, reduced power and higher performances But it increases the chip size (cost) and makes debugging more challenging. Standard components for SoC are cores, memory, sensors and actuators. t 54

Embedded System Design Embedded systems: Objective control systems: reactive, real-time function & size: micro controller to high throughput data-processor requires leveraging the components and cores of microprocessors reliability, availability and safety are vital use of formal verification to check the correctness may use redundancy 55

Codesign of ISA ISA is fundamental to digital system design An instruction set permits concurrent design of HW and compiler developments Good ISA design is critical in achieving system usability across applications Goal of codesign in ISP development is to optimize HW utilization by application & OS 56

Codesign of ISA For high performance in ES, selection of instruction set that matches the application is very important replace the standard core by ASIP ASIPs are more flexible than ASICs but less than ISP ASIP performs better than ISP 57

Challenges with ASIP Compatibility requirement is less important Goal: support specific instruction mixes Price of the flexibility in choosing mixed instruction set is to develop the application specific compiler. CAD of compiler is partly solved problem 58

Typical codesign process System Description Modeling HW/SW Partitioning Unified representation Software Interface Hardware synthesis synthesis synthesis System integration Instruction set level HW/SW evaluation 59

Steps in Codesign HW-SW system involves specification modeling design space exploration and partitioning synthesis and optimization validation implementation 60

Steps in codesign Specification Modeling: List the functions of a system that describe the behavior of an abstraction clearly with out ambiguity. Process of conceptualizing and refining the specifications, and producing a hardware and software model. 61

Modeling style Homogeneous: a modeling language or a graphical formalism for presentation partitioning problem used by the designer Heterogeneous: multiple presentations partitioning is specified by the models 62

Steps in codesign Validation: Process of achieving a reasonable level of confidence that the system will work as designed. Takes different flavors per application domain: cosimulation for performance and correctness 63

Steps in codesign Implementation: Physical realization of the hardware (through synthesis) and of executable software (through compilation). 64

Partitioning and Scheduling (where and when) A hardware/software partitioning represents a physical partition of system functionality into application-specific hardware and software. Scheduling is to assign an execution start time to each task in a set, where tasks are linked by some relations. 65

Summary: Research areas in codesign Languages Architectural exploration tools Algorithms for partitioning i Scheduling SW, HW and interface Synthesis Verification and Testing 66