October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

© S. Ramesh / Kavi Arya / Krithi Ramamritham 1 IT-606 Embedded Systems (Software ) S. Ramesh Kavi Arya Krithi Ramamritham KReSIT/ IIT Bombay.
Modelos de Computação Básicos Prof. Dr. César Augusto Missio Marcon Parcialmente extraído de trabalhos de Axel Jantch, Edward Lee e Alberto Sangiovanni-Vincentelli.
WATERLOO ELECTRICAL AND COMPUTER ENGINEERING 20s: Computer Hardware 1 WATERLOO ELECTRICAL AND COMPUTER ENGINEERING 20s Computer Hardware Department of.
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Hardware/Software Codesign.
1 EE249 Scheduling. 2 EE249 What’s the problem? l Have some work to do –know subtasks l Have limited resources l Have some constraints to meet l Want.
Efficient Software Performance Estimation Methods for Hardware/Software Codesign Kei Suzuki Alberto Sangiovanni-Vincentelli Present: Yanmei Li.
Component Technologies for Embedded Systems Johan Eker.
Synthesis of Software Programs for Embedded Control Application Felice Balarin, Massimiliano Chiodo, Paolo Giusto, Harry Hsieh, ASV, etc. Presented by.
Scheduling for Embedded Real-Time Systems Amit Mahajan and Haibo.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
HW/SW Synthesis. 2 Outline u Synthesis u CFSM Optimization u Software synthesis s Problem s Task synthesis s Performance analysis s Task scheduling s.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Define Embedded Systems Small (?) Application Specific Computer Systems.
AR vs. CFSM Abdallah Tabbara. CFSM Overview 4 CFSM has: –a finite state machine part –a data computation part –a locally synchronous behavior transitions.
1 Quasi-Static Scheduling of Embedded Software Using Free-Choice Petri Nets Marco Sgroi, Alberto Sangiovanni-Vincentelli Luciano Lavagno University of.
Dataflow Process Networks Lee & Parks Synchronous Dataflow Lee & Messerschmitt Abhijit Davare Nathan Kitchen.
Design of Fault Tolerant Data Flow in Ptolemy II Mark McKelvin EE290 N, Fall 2004 Final Project.
Models of Computation for Embedded System Design Alvise Bonivento.
A Denotational Semantics For Dataflow with Firing Edward A. Lee Jike Chong Wei Zheng Paper Discussion for.
Heterochronous Dataflow in Ptolemy II Brian K. Vogel EE249 Project Presentation, Dec. 4, 1999.
Mahapatra-Texas A&M-Fall'001 Partitioning - I Introduction to Partitioning.
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.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Mahapatra-A&M-Sprong'021 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
Trend towards Embedded Multiprocessors Popular Examples –Network processors (Intel, Motorola, etc.) –Graphics (NVIDIA) –Gaming (IBM, Sony, and Toshiba)
Comparing Models of Computation for Real-time, Distributed Control Systems Shawn Schaffert Bruno Sinopoli.
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
Hardware-Software Codesign Elvira Kitsis Hermawan Ho Alex Papadimoulis.
EECS 249 Dec 4, 1999 Extending POLIS with User Defined Data Types Arvind Thirunarayanan Extending POLIS with User Defined Data Types Arvind Thirunarayanan.
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.
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
Voicu Groza, 2008 SITE, HARDWARE/SOFTWARE CODESIGN OF EMBEDDED SYSTEMS Hardware/Software Codesign of Embedded Systems Voicu Groza SITE Hall, Room.
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 {
Models of Computation: FSM Model Reading: L. Lavagno, A.S. Vincentelli and E. Sentovich, “Models of computation for Embedded System Design”
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
1 Chapter 6 Co-synthesis Techniques. 2 Cosynthesis Methodical approach to system implementations using automated synthesis-oriented techniques Methodology.
Software Pipelining for Stream Programs on Resource Constrained Multi-core Architectures IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEM 2012 Authors:
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
1 H ardware D escription L anguages Modeling Digital Systems.
Real-Time Operating Systems for Embedded Computing 李姿宜 R ,06,10.
1 Chapter 7 Function-Architecture Codesign Paradigm.
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #21 – HW/SW.
Hardware-software Interface Xiaofeng Fan
Mahapatra-A&M-Fall'001 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
C. André, J. Boucaron, A. Coadou, J. DeAntoni,
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
1 Embedded Computer System Laboratory Systematic Embedded Software Gerneration from SystemC.
Computing For Embedded System IEEE Instrumentation and Measurement Technology Conference Budapest, Hungary, May 21-23, Author : Edward A. Lee UC.
FPL Sept. 2, 2003 Software Decelerators Eric Keller, Gordon Brebner and Phil James-Roxby Xilinx Research Labs.
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.
High Performance Embedded Computing © 2007 Elsevier Chapter 7, part 3: Hardware/Software Co-Design High Performance Embedded Computing Wayne Wolf.
PTII Model  VHDL Codegen Verification Project Overview 1.Generate VHDL descriptions for Ptolemy models. 2.Maintain bit and cycle accuracy in implementation.
University of Maryland at College Park Smart Dust Digital Processing, 1 Digital Processing Platform Low power design and implementation of computation.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Dynamo: A Runtime Codesign Environment
Introduction to cosynthesis Rabi Mahapatra CSCE617
Hardware/Software Codesign Representation Models
Digital Processing Platform
Paper discussed in class: M. Chiodo, P. Giusto, A. Jurecska, H
Presentation transcript:

October 18, 2001Cho & Kim 1 Software Synthesis EE202A Presentation October 18, 2001 Young H. Cho and Seung Hyun Kim

October 18, 2001Cho & Kim 2 Outline  Background  HW/SW Co-design  Software Synthesis  Summary

October 18, 2001Cho & Kim 3 Background  Embedded Software  Constrained Structure  “Simple,” Multiple Tasks  Target Architecture

October 18, 2001Cho & Kim 4 HW/SW Co-design  Reactive Real-time System  Mixed HW/SW System  Software – Flexibility  Hardware – Performance

October 18, 2001Cho & Kim 5 HW/SW Co-Design Formal Languages Partitioning HW SynthesisSW Synthesis RTOSTasksLogic Synthesis Code OptimizationLogic Optimization Board Level Prototyping Co-Simulation And Formal Verification

October 18, 2001Cho & Kim 6 Partitioning High-Level Design  Formal Languages  Textual Representation  Graphical Representation  Design Partitioning  Platform Resource  HW/SW Synthesis A B C

October 18, 2001Cho & Kim 7 Software Synthesis  Goal: Optimized software from high-level specification  Issues to consider  Target hardware support  Retargetable compilers  Result: Efficient code for the target processor A B C begin X1=TaskA(W); X2=TaskA(W); Y=TaskB(X1); result=TaskC(X2,Y); end

October 18, 2001Cho & Kim 8 Code Generation  Static Code  Static (object) code for each tasks  Library of inline codes  Code optimization  Task Handling  Resource management  Static/dynamic scheduling  Communication

October 18, 2001Cho & Kim 9 Software Synthesis Example Task B Downsample 2 to 1 Task A Upsample 1 to High-Level Description Static Code for (i=0;i<3;i++) { Out[i]=In; } Reg=In[0]+In[1]; Out=Reg>>1; main(Samples *In) { while() { /* Schedule 2A */ for (j=0;j<2;j++) { /* inline code: Task A */ for (i=0;i<3;i++) { OutA[j*3+i]=InA[j]; } for (k=0;k<3;k++) { /* inline code: Task B */ Reg=OutA[k*2] +OutA[k*2+1]; OutB[k]=Reg>>1; } Code Generation 2 (TaskA) 3 (TaskB) & Schedule

October 18, 2001Cho & Kim 10 Programming Models  FSM Model  Co-design Finite State Machine (CFSM)  Dataflow Models  Synchronous Dataflow (SDF)  Boolean Dataflow  Dynamic Dataflow  Processor Network  Others

October 18, 2001Cho & Kim 11 CFSM  Extended FSM  Globally Asynchronous Locally Synchronous (GALS)  Unbiased towards HW or SW  Reactive, control-dominated systems  Size of the systems that can be mapped

October 18, 2001Cho & Kim 12 SW Synthesis with CFSM  Software Graph (S-Graph)  Task Synthesis  Real-Time Operating System (RTOS)  Machine Code Compilation

October 18, 2001Cho & Kim 13 S-Graph  Control/Data-Flow Diagram  Directed Acyclic Graph (DAG) BEGIN present_c = 1 a = ?c a’ := 0 emit_y := 1 END a’ := a + 1a’ := a emit_y := 0 falsetrue falsetrue module simpleCFSM: input c: integer; output y; var a: integer in loop await c; if a = ?c then a := 0; emit y; else a := a + 1; end if end loop end var end module

October 18, 2001Cho & Kim 14 Task Synthesis  Construction  Translation of transition function of CFSM  Recursively built from the reactive function  Optimization  Reordering or collapsing test nodes  Code-size estimation  Translation  Target language (e.g., C code)

October 18, 2001Cho & Kim 15 RTOS  Scheduling  Individual CFSM  Communication Mechanisms  Set of flags  Memory mapped I/O port of the micro- controller  Polling or interrupts  Synthesis or Commercial RTOS

October 18, 2001Cho & Kim 16 Cost/Performance Estimation  Accurate and Quick Estimation  Code size  Min/max execution time  Considerations  Code structures  System platform  Solution  Assign cost/timing parameters

October 18, 2001Cho & Kim 17 SDF  Digital Signal Processing  Graphical Representation  Actors/Nodes  Directed edges  Delays  Synchrony  Consume Tokens  Produce Tokens  Fixed number of Tokens a b c D D

October 18, 2001Cho & Kim 18 Schedule/Memory  Static scheduling  Determine task buffer size  Memory efficient edge delay  Deterministic at compile time

October 18, 2001Cho & Kim 19 SW Synthesis with SDF  Library of actor code blocks  Determine static schedule  Optimal code size  Performance  Inline code using schedule

October 18, 2001Cho & Kim 20 Summary  HW/SW Co-design  Software Synthesis  Highly optimized code  Timing constraints  Efficient Resource Usage  Highest performance per cost  Control over implementation cost

October 18, 2001Cho & Kim 21 Related Research  Berkeley HW/SW Co-Design Group   Berkeley Ptolemy Group   CHINOOK   VULCAN  Cadence Cierto VCC  Jeckle: the JAVA ECL compiler

October 18, 2001Cho & Kim 22 References 1.A. Sangiovanni-Vincentelli, “What is software synthesis?,” Computer Design Editorial, Department of EECS, UC Berkeley, Berkeley, CA, June Berkeley POLIS Group, “A Framework for Hardware-Software Co- Design of Embedded System,” POLIS Website, Department of EECS, UC Berkeley, Berkeley, CA, F. Thoen, M. Cornero, G. Goosens, and H. DeMan, “Software synthesis for real-time information processing systems,” ACM SIGPLAN, Vol. 30, No. 11, November Linkoping University HW/SW Co-design Course Website, EE249 “Design of Embedded Systems: Models, Validations, and Synthesis,” UC Berkeley, CA P. Chou, and G. Borriello, “Software scheduling in the co-synthesis of reactive real-time systems,’ 31st ACM/IEEE Design Automation Conference, San Diego, CA, pp. 1-4, June

October 18, 2001Cho & Kim 23 References 7.E. Lee, “Embedded software,” UC Berkeley ERL Memorandum M01/26, F. Balarin, L. Lavagno, P. Murthy, and A. Sangiovanni-Vincentelli, “Scheduling for embedded real-time systems,” IEEE Design & Test of Computers, Vol. 15, No. 1, pp , January-March S. Bhattacharyya, R. Leupers, and P. Marwedel, “Software synthesis and code generation for signal processing systems,” IEEE Transactions on Circuits and Systems-II: Analog and Digital Signal Processing, Vol. 47, No. 9, pp , September S. Bhattacharyya, P. Murthy, and E. Lee, “Synthesis of embedded software dataflow specifications,” Journal of VLSI Signal Processing Systems, Vol. 21, No. 2, pp , June 1999.