Introduction to HW/SW Co-Synthesis Algorithms Part of HW/SW Codesign of Embedded Systems Course (CE 40-226) Winter-Spring 2001 Codesign of Embedded Systems 1 Topics Introduction Preliminaries Hardware/Software Partitioning Distributed System Co-Synthesis Conclusions Winter-Spring 2001 Codesign of Embedded Systems 2 Introduction to HW/SW Co-Synthesis Algorithms Introduction Winter-Spring 2001 Codesign of Embedded Systems 3 Introduction Implementing a system? Why use CPU? Easier implementation Easier (and cheaper) to change and debug Why use hardware modules? Meeting other constraints performance, power consumption, etc Found a CPU meeting all non-functional constraints? Yes! What could be better? Use the CPU. No! Design custom logic, or a combination of both Winter-Spring 2001 Codesign of Embedded Systems 4 Introduction (cont’d) Why more than one CPU or custom logic? Why not use the fastest available CPU? Winter-Spring 2001 Codesign of Embedded Systems 5 Introduction (cont’d) Reason 1: Exponential cost per CPU performance Figure: late-1996 retail prices of Pentium Processor Clock speed (MHz) Pentium processor prices Winter-Spring 2001 Codesign of Embedded Systems 6 Introduction (cont’d) Exponential price/performance implies Paying for performance in a uni-processor is very expensive Using multiple small CPUs is cheaper Communication overhead is added, but still an economic choice Processors need not be CPUs. But special-function units. Special-purpose PEs can be even cheaper than dedicated CPU! Winter-Spring 2001 Measured in system manufacturing cost, not necessarily in design cost Codesign of Embedded Systems 7 Introduction (cont’d) Reason 2: Scheduling overhead More than 31% overhead, under reasonable assumptions, when executing multiple processes Winter-Spring 2001 Reason: uncertainty in the times at which the processes will need to execute Result: we have to reserve extra CPU horsepower, which comes at exponential cost Codesign of Embedded Systems 8 Introduction (cont’d) Still (1997) not quite possible to declare an authoritative taxonomy of co-synthesis models and methods Definition HW/SW co-synthesis: process of simultaneously design the SW architecture of an application and the HW architecture on which that SW is executed. Winter-Spring 2001 Codesign of Embedded Systems 9 Introduction (cont’d) SW (app.) Arch. Problem Specification CoSynthesis Communication Channels HW Engine PE PE PE Winter-Spring 2001 Codesign of Embedded Systems Mem 10 Introduction (cont’d) Problem specification includes Functionality Non-functional requirements Performance goals, physical constraints, etc Winter-Spring 2001 Codesign of Embedded Systems 11 Introduction (cont’d) Hardware Architecture One or more Processing-Elements (PEs) Software (Application) Architecture includes Process structure Each process executes sequentially Allocation of the processes onto PEs in the HW engine Communication channels Hardware elements Software primitives Winter-Spring 2001 Codesign of Embedded Systems 12 Introduction (cont’d) HW/SW Co-synthesis Allows trade-offs between SW architecutre and HW on which it executes Where is such trade-off important? Everyday processing applications vs. Embedded applications Different co-synthesis styles depending on The Specification The System Components System Elements to synthesize Winter-Spring 2001 Codesign of Embedded Systems 13 Introduction (cont’d) Two broad implementation styles HW/SW partitioning Target HW architecture: a CPU and multiple ASICs Distributed System Co-synthesis Target HW architecture: arbitrary hardware topologies Winter-Spring 2001 Codesign of Embedded Systems 14 Introduction to HW/SW Co-Synthesis Algorithms Preliminaries Winter-Spring 2001 Codesign of Embedded Systems 15 Preliminaries Rate (execution rate) Maximum frequency at which a processing must be done Single-rate vs. Multi-rate Example of multi-rate system audio/video decoder Winter-Spring 2001 Codesign of Embedded Systems 16 Preliminaries (cont’d) Latency Required maximum time between starting and finishing a processing task Winter-Spring 2001 Codesign of Embedded Systems 17 Preliminaries (cont’d) Single-rate systems Standard model: Control-Data Flow Graph (CDFG) Implies a program-counter or system-state Software Control-Unit + Data path Not suitable to model multi-rate tasks unified system state Winter-Spring 2001 Codesign of Embedded Systems 18 Preliminaries (cont’d) Multi-rate systems P1 Common model: Task Graph P4 P5 Task Graph Each Node: Process Each Edge: Communication Each Set of connected nodes: sub-task Winter-Spring 2001 P2 Codesign of Embedded Systems P3 P6 19 What we learned today What’s co-synthesis Various keywords used in classification of cosynthesis algorithms Winter-Spring 2001 Codesign of Embedded Systems 20 Complementary notes: Assignments Take Assignment 9 Due Date: Wednesday, Khordad 23th Winter-Spring 2001 Codesign of Embedded Systems 21