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.

Slides:



Advertisements
Similar presentations
Embedded System, A Brief Introduction
Advertisements

© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
ECE-777 System Level Design and Automation Hardware/Software Co-design
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
INTRODUCTION TO MODELING
PradeepKumar S K Asst. Professor Dept. of ECE, KIT, TIPTUR. PradeepKumar S K, Asst.
Fault Detection in a HW/SW CoDesign Environment Prepared by A. Gaye Soykök.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Hardware/Software Codesign.
Reference: Message Passing Fundamentals.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
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.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 08: RC Principles: Software (1/4) Prof. Sherief Reda.
System Partitioning Kris Kuchcinski
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
Mahapatra-Texas A&M-Fall'001 Partitioning - I Introduction to Partitioning.
Winter-Spring 2001Codesign of Embedded Systems1 Introduction to HW/SW Co-Synthesis Algorithms Part of HW/SW Codesign of Embedded Systems Course (CE )
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
Chapter 10 Architectural Design
CSC271 Database Systems Lecture # 30.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
An Introduction to Software Architecture
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 {
1 Partitioning Methods. 2 Outline Introduction to Hardware-Software Codesign Models, Architectures, Languages Partitioning Methods Design Quality Estimation.
An Integration Framework for Sensor Networks and Data Stream Management Systems.
Lecture 2 Process Concepts, Performance Measures and Evaluation Techniques.
Automated Design of Custom Architecture Tulika Mitra
Winter-Spring 2001Codesign of Embedded Systems1 Co-Synthesis Algorithms: HW/SW Partitioning Part of HW/SW Codesign of Embedded Systems Course (CE )
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
Testing Workflow In the Unified Process and Agile/Scrum processes.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
1 Exploring Custom Instruction Synthesis for Application-Specific Instruction Set Processors with Multiple Design Objectives Lin, Hai Fei, Yunsi ACM/IEEE.
1 2-Hardware Design Basics of Embedded Processors (cont.)
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.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Resource Mapping and Scheduling for Heterogeneous Network Processor Systems Liang Yang, Tushar Gohad, Pavel Ghosh, Devesh Sinha, Arunabha Sen and Andrea.
C OMPARING T HREE H EURISTIC S EARCH M ETHODS FOR F UNCTIONAL P ARTITIONING IN H ARDWARE -S OFTWARE C ODESIGN Theerayod Wiangtong, Peter Y. K. Cheung and.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
1 Power estimation in the algorithmic and register-transfer level September 25, 2006 Chong-Min Kyung.
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.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
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.
Pipelined and Parallel Computing Partition for 1 Hongtao Du AICIP Research Dec 1, 2005 Part 2.
Hardware/Software Co-Design of Complex Embedded System NIKOLAOS S. VOROS, LUIS SANCHES, ALEJANDRO ALONSO, ALEXIOS N. BIRBAS, MICHAEL BIRBAS, AHMED JERRAYA.
1 of 14 Lab 2: Formal verification with UPPAAL. 2 of 14 2 The gossiping persons There are n persons. All have one secret to tell, which is not known to.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Embedded Real-Time Systems
Multi-cellular paradigm The molecular level can support self- replication (and self- repair). But we also need cells that can be designed to fit the specific.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
 System Requirement Specification and System Planning.
Dynamic and On-Line Design Space Exploration for Reconfigurable Architecture Fakhreddine Ghaffari, Michael Auguin, Mohamed Abid Nice Sophia Antipolis University.
OPERATING SYSTEMS CS 3502 Fall 2017
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Objective of This Course
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
HIGH LEVEL SYNTHESIS.
Mattan Erez The University of Texas at Austin
Presentation transcript:

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 Modeling Methodologies l HW and SW Synthesis Methodologies l Industry Approaches to HW/SW Codesign l Hardware/Software Codesign Research l Summary

2 Copyright  2001 Pao-Ann Hsiung SW HW Hardware/Software Partitioning l Definition m The process of deciding, for each subsystem, whether the required functionality is more advantageously implemented in hardware or software l Goal m To achieve a partition that will give us the required performance within the overall system requirements (in size, weight, power, cost, etc.) l This is a multivariate optimization problem that when automated, is an NP-hard problem

3 Copyright  2001 Pao-Ann Hsiung SW HW HW/SW Partitioning Issues l Partitioning into hardware and software affects overall system cost and performance l Hardware implementation m Provides higher performance via hardware speeds and parallel execution of operations m Incurs additional expense of fabricating ASICs l Software implementation m May run on high-performance processors at low cost (due to high-volume production) m Incurs high cost of developing and maintaining (complex) software

4 Copyright  2001 Pao-Ann Hsiung SW HW Partitioning Approaches l 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) l Start with all functionality in hardware and move portions into software implementation (hardware-oriented partitioning)

5 Copyright  2001 Pao-Ann Hsiung SW HW System Partitioning (Functional Partitioning) l System partitioning in the context of hardware/software codesign is also referred to as functional partitioning l Partitioning functional objects among system components is done as follows m The system’s functionality is described as collection of indivisible functional objects m Each system component’s functionality is implemented in either hardware or software l An important advantage of functional partitioning is that it allows hardware/software solutions

6 Copyright  2001 Pao-Ann Hsiung SW HW Partitioning Metrics l Deterministic estimation techniques m Can be used only with a fully specified model with all data dependencies removed and all component costs known m Result in very good partitions l Statistical estimation techniques m Used when the model is not fully specified m Based on the analysis of similar systems and certain design parameters l Profiling techniques m Examine control flow and data flow within an architecture to determine computationally expensive parts which are better realized in hardware

7 Copyright  2001 Pao-Ann Hsiung SW HW Binding Software to Hardware l Binding: assigning software to hardware components l After parallel implementation of assigned modules, all design threads are joined for system integration m Early binding commits a design process to a certain course m Late binding, on the other hand, provides greater flexibility for last minute changes

8 Copyright  2001 Pao-Ann Hsiung SW HW Hardware/Software System Architecture Trends l Some operations in special-purpose hardware m Generally take the form of a coprocessor communicating with the CPU over its bus q Computation must be long enough to compensate for the communication overhead m May be implemented totally in hardware to avoid instruction interpretation overhead q Utilize high-level synthesis algorithms to generate a register transfer implementation from a behavior description l Partitioning algorithms are closely related to the process scheduling model used for the software side of the implementation

9 Copyright  2001 Pao-Ann Hsiung SW HW HW/SW Partition Formal Definition A hardware/software partition is defined using two sets H and S, where H  O, S  O, H  S = O, H  S =  l Associated metrics:  Hsize(H) is the size of the hardware needed to implement the functions in H (e.g., number of transistors) m Performance(G) is the total execution time for the group of functions in G for a given partition {H,S}  Set of performance constraints, Cons = (C 1,... C m ), where C j = {G, timecon}, indicates the maximum execution time allowed for all the functions in group G and G  O

10 Copyright  2001 Pao-Ann Hsiung SW HW Performance Satisfying Partition A performance satisfying partition is one for which performance(C j.G)  C j.timecon, for all j=1...m l Given O and Cons, the hardware/software partitioning problem is to find a performance satisfying partition {H,S} such that Hsize(H) is minimized l The all-hardware size of O is defined as the size of an all hardware partition (i.e., Hsize(O))

11 Copyright  2001 Pao-Ann Hsiung SW HW Issues in Partitioning l Specification abstraction level l Granularity l System-component allocation l Metrics and estimations l Partitioning algorithms l Objective and closeness functions l Partitioning algorithms l Output l Flow of control and designer interaction

12 Copyright  2001 Pao-Ann Hsiung SW HW Issues in Partitioning (Cont.) Outpu t High Level Abstraction Decomposition of functional objects Metrics and estimations Partitioning algorithms Objective and closeness functions Component allocation

13 Copyright  2001 Pao-Ann Hsiung SW HW Specification Abstraction Levels l Task-level dataflow graph m A Dataflow graph where each operation represents a task l Task m Each task is described as a sequential program l Arithmetic-level dataflow graph m A Dataflow graph of arithmetic operations along with some control operations m The most common model used in the partitioning techniques l Finite state machine (FSM) with datapath m A finite state machine, with possibly complex expressions being computed in a state or during a transition

14 Copyright  2001 Pao-Ann Hsiung SW HW Specification Abstraction Levels (Cont.) l Register transfers m The transfers between registers for each machine state are described l Structure m A structural interconnection of physical components m Often called a netlist

15 Copyright  2001 Pao-Ann Hsiung SW HW Granularity Issues in Partitioning l The granularity of the decomposition is a measure of the size of the specification in each object l The specification is first decomposed into functional objects, which are then partitioned among system components m Coarse granularity means that each object contains a large amount of the specification. m Fine granularity means that each object contains only a small amount of the specification q Many more objects q More possible partitions í Better optimizations can be achieved

16 Copyright  2001 Pao-Ann Hsiung SW HW System Component Allocation l The process of choosing system component types from among those allowed, and selecting a number of each to use in a given design l The set of selected components is called an allocation m Various allocations can be used to implement a specification, each differing primarily in monetary cost and performance m Allocation is typically done manually or in conjunction with a partitioning algorithm l A partitioning technique must designate the types of system components to which functional objects can be mapped m ASICs, memories, etc.

17 Copyright  2001 Pao-Ann Hsiung SW HW Metrics and Estimations Issues l A technique must define the attributes of a partition that determine its quality m Such attributes are called metrics q Examples include monetary cost, execution time, communication bit-rates, power consumption, area, pins, testability, reliability, program size, data size, and memory size q Closeness metrics are used to predict the benefit of grouping any two objects l Need to compute a metric’s value m 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

18 Copyright  2001 Pao-Ann Hsiung SW HW Metrics in HW/SW Partitioning l Two key metrics are used in hardware/software partitioning m Performance: Generally improved by moving objects to hardware m Hardware size: Hardware size is generally improved by moving objects out of hardware

19 Copyright  2001 Pao-Ann Hsiung SW HW Computation of Metrics l Two approaches to computing metrics m Creating a detailed implementation q Produces accurate metric values q Impractical as it requires too much time m Creating a rough implementation q Includes the major register transfer components of a design q Skips details such as precise routing or optimized logic, which require much design time q Determining metric values from a rough implementation is called estimation

20 Copyright  2001 Pao-Ann Hsiung SW HW Objective and Closeness Functions l Multiple metrics, such as cost, power, and performance are weighed against one another m An expression combining multiple metric values into a single value that defines the quality of a partition is called an Objective Function m The value returned by such a function is called cost m Because many metrics may be of varying importance, a weighted sum objective function is used q e.g., Objfct = k1 * area + k2 * delay + k3 * power m Because constraints always exist on each design, they must be taken into account q e.g Objfct = k1 * F(area, area_constr) + k2 * F(delay, delay_constr) + k3 * F(power, power_constr)

21 Copyright  2001 Pao-Ann Hsiung SW HW Partitioning Algorithm Issues l Given a set of functional objects and a set of system components, a partitioning algorithm searches for the best partition, which is the one with the lowest cost, as computed by an objective function l While the best partition can be found through exhaustive search, this method is impractical because of the inordinate amount of computation and time required l The essence of a partitioning algorithm is the manner in which it chooses the subset of all possible partitions to examine

22 Copyright  2001 Pao-Ann Hsiung SW HW Partitioning Algorithm Classes l Constructive algorithms m Group objects into a complete partition m Use closeness metrics to group objects, hoping for a good partition m Spend computation time constructing a small number of partitions l Iterative algorithms m Modify a complete partition in the hope that such modifications will improve the partition m Use an objective function to evaluate each partition m Yield more accurate evaluations than closeness functions used by constructive algorithms l In practice, a combination of constructive and iterative algorithms is often employed

23 Copyright  2001 Pao-Ann Hsiung SW HW Iterative Partitioning Algorithms l The computation time in an iterative algorithm is spent evaluating large numbers of partitions l Iterative algorithms differ from one another primarily in the ways in which they modify the partition and in which they accept or reject bad modifications l The goal is to find global minimum while performing as little computation as possible A B C A, B - Local minima C - Global minimum

24 Copyright  2001 Pao-Ann Hsiung SW HW Iterative Partitioning Algorithms (Cont.) l Two broad categories: m Greedy algorithms q Only accept moves that decrease cost q Can get trapped in local minima m Hill-climbing algorithms q Allow moves in directions increasing cost (retracing) í Through use of stochastic functions q Can escape local minima q E.g., simulated annealing

25 Copyright  2001 Pao-Ann Hsiung SW HW Output Issues in Partitioning l Any partitioning technique must define the representation format and potential use of its output m E.g., the format may be a list indicating which functional object is mapped to which system component m E.g., the output may be a revised specification q Containing structural objects for the system components q Defining a component’s functionality using the functional objects mapped to it

26 Copyright  2001 Pao-Ann Hsiung SW HW Flow of Control and Designer Interaction l Sequence in making decisions is variable, and any partitioning technique must specify the appropriate sequences m E.g., selection of granularity, closeness metrics, closeness functions l Two classes of interaction m Directives q Include possible actions the designer can perform manually, such as allocation, overriding estimations, etc. m Feedback q Describe the current design information available to the designer (e.g., graphs of wires between objects, histograms, etc.)

27 Copyright  2001 Pao-Ann Hsiung SW HW Comparing Partitions Using Cost Functions l A cost function is a function Cost(H, S, Cons, I ) which returns a natural number that summarizes the overall quality of a given partition m I contains any additional information that is not contained in H or S or Cons m A smaller cost function value is desired l An iterative improvement partitioning algorithm is defined as a procedure Part_Alg(H, S, Cons, I, Cost( ) ) which returns a partition H’, S’ such that Cost(H’, S’, Cons, I)  Cost(H, S, Cons, I )