Metodologie di Progettazione Hardware e Software

Similar documents
Using Speculative Computation and Parallelizing techniques to improve Scheduling of Control based Designs

Hardware Design and Simulation for Verification

Automated Bug Detection for Pointers and Memory Accesses in High-Level Synthesis Compilers

Applications to MPSoCs

Politecnico di Milano

Self-Aware Adaptation in FPGA-based Systems

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

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

An Overview of Compilation

FPGA Reconfiguration!

HSA foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room A. Alario! 23 November, 2015!

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

FPGA: What? Why? Marco D. Santambrogio

CPU Architecture system clock

Politecnico di Milano

Easy Multicore Programming using MAPS

Hardware Software Codesign of Embedded Systems

- - PARADISE: Design Environment for Parallel & Distributed, Embedded Real-Time

Fast Software-Level Power Estimation for Design Space Exploration

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

are Softw Instruction Set Architecture Microarchitecture are rdw

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

ECE332, Week 2, Lecture 3

Automatic Instrumentation of Embedded Software for High Level Hardware/Software Co-Simulation

Introduction to Multiprocessors (Part I) Prof. Cristina Silvano Politecnico di Milano

Crafting a Compiler with C (II) Compiler V. S. Interpreter

Hardware Software Codesign of Embedded System

MOJTABA MAHDAVI Mojtaba Mahdavi DSP Design Course, EIT Department, Lund University, Sweden

Hardware-Software Codesign. 1. Introduction

UML-Based Design Flow and Partitioning Methodology for Dynamically Reconfigurable Computing Systems

Outline EEL 5764 Graduate Computer Architecture. Chapter 3 Limits to ILP and Simultaneous Multithreading. Overcoming Limits - What do we need??

COMPILER CONSTRUCTION FOR A NETWORK IDENTIFICATION SUMIT SONI PRAVESH KUMAR

High Data Rate Fully Flexible SDR Modem

Dr. Yassine Hariri CMC Microsystems

SimXMD Simulation-based HW/SW Co-debugging for field-programmable Systems-on-Chip

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

Automated Design Flow for Coarse-Grained Reconfigurable Platforms: an RVC-CAL Multi-Standard Decoder Use-Case

Co-synthesis and Accelerator based Embedded System Design

Chapter 10. PeaCE design flow overview

Course on Advanced Computer Architectures

System Level Design with IBM PowerPC Models

Adding custom instructions to the Simplescalar infrastructure

SimXMD: Simulation-based HW/SW Co-Debugging for FPGA Embedded Systems

SimXMD Co-Debugging Software and Hardware in FPGA Embedded Systems

Choosing IP-XACT IEEE 1685 standard as a unified description for timing and power performance estimations in virtual platforms platforms

Hardware/Software Co-design

Unleashing the Power of the Command-Line Interface. Jeremy W. Webb UC Davis VLSI Computation Laboratory

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis

Hardware/Software Codesign

Introduction to Machine-Independent Optimizations - 6

ERCBench An Open-Source Benchmark Suite for Embedded and Reconfigurable Computing

Code Generation for QEMU-SystemC Cosimulation from SysML

COSADE Conference Series

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

A Plan 9 C Compiler for RISC-V

CMSC 411 Computer Systems Architecture Lecture 13 Instruction Level Parallelism 6 (Limits to ILP & Threading)

Hardware/Software Codesign

Resource-Efficient Scheduling for Partially-Reconfigurable FPGAbased

Research Progress on Compilers for DSP Cores with Specifications

COVER SHEET: Problem#: Points

Testing Methods: White Box Testing II

RTL Design-Flow with SystemC in an Industrial Design Project Modeling a GPS Receiver Using SystemC

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

Exploiting ILP, TLP, and DLP with the Polymorphous TRIPS Architecture

SyCERS: a SystemC design exploration framework for SoC reconfigurable architecture

A Novel Design Framework for the Design of Reconfigurable Systems based on NoCs

Instruction Scheduling. Software Pipelining - 3

POLITECNICO DI MILANO

Component-based Engineering for Embedded Systems USA EU workshop

Introduction. CS 2210 Compiler Design Wonsun Ahn

CSE Lecture In Class Example Handout

EARLY PREDICTION OF HARDWARE COMPLEXITY IN HLL-TO-HDL TRANSLATION

DSPACE: LISA Methodology

Long Term Trends for Embedded System Design

Design Issues in Hardware/Software Co-Design

Supporting the Linux Operating System on the MOLEN Processor Prototype

ECE902 Virtual Machine Final Project: MIPS to CRAY-2 Binary Translation

HY425 Lecture 09: Software to exploit ILP

New Successes for Parameterized Run-time Reconfiguration

Design Space Exploration for Hardware/Software Codesign of Multiprocessor Systems

Instruction Selection: Preliminaries. Comp 412

HY425 Lecture 09: Software to exploit ILP

Advance CPU Design. MMX technology. Computer Architectures. Tien-Fu Chen. National Chung Cheng Univ. ! Basic concepts

Ultra Depedable VLSI by Collaboration of Formal Verifications and Architectural Technologies

ASPDAC An application-centered Design Flow for Self Reconfigurable Systems implementation

An adaptive genetic algorithm for dynamically reconfigurable modules allocation

Introduction to Virtual Machines

RETARGETABLE CODE GENERATION FOR DIGITAL SIGNAL PROCESSORS

Getting CPI under 1: Outline

Exploiting Idle Floating-Point Resources for Integer Execution

An Overview to Compiler Design. 2008/2/14 \course\cpeg421-08s\topic-1a.ppt 1

Intermediate Code & Local Optimizations

Hardware in the Loop Functional Verification Methodology

IMPLEMENTATION DESIGN FLOW

LECTURE 1. Introduction

Optimization of Run-time Reconfigurable Embedded Systems

Design Methodologies. Kai Huang

Implementing Control Flow Constructs Comp 412

A MDD Methodology for Specification of Embedded Systems and Automatic Generation of Fast Configurable and Executable Performance Models

Lecture 4: MIPS Instruction Set

Transcription:

POLITECNICO DI MILANO Metodologie di Progettazione Hardware e Software Reconfigurable Computing - Design Flow - Marco D. Santambrogio marco.santabrogio@polimi.it Outline 2 Retargetable Compiler Basic Idea Description Programming paradigm MOLEN architecture LimboWARE: basic principles VIRGIL YaRA architecture 1

Presentation status 3 Retargetable Compiler Basic Idea Description Programming paradigm MOLEN architecture LimboWARE: basic principles VIRGIL YaRA architecture Compiler background Compiler is a quite complex software package Compilers must be particularly reliable Translation of source code into machine independent intermediate representation (IR) Design requires separation into multiple phases Compiler is followed by Assembler, Linker Backend: mapping machine indepent IR to machine dependent asm + machine dependent optimizations 4 2

Retargetable Compilers 5 Retargetable Compilers Main Goals Def.: A compileris called retargetable,ifit can be modified to generate asse mbly code for different architectures, while reusing the largest part ofthe co mpiler source code. Adapt to new processors having a single tool for an entire class of target machines Support for design space exploration by editing the target processor model Tradeoff retargetability/code quality: Realistic retargetable compilers focus on a specific class of processor architectures 6 3

Retargetable Compilers - degrees Parameterizable: Compiler source code is fixed, retargeting mainly by adjusting several parameters User retargetable: User w/o in-depth compiler knowledge can change the target Developer retargetable: Compiler developer (or very experienced user) can retarget the compiler with limited effort Portable: Some source code can be kept, but a lot of code needs to be newly written 7 Presentation status 8 Retargetable Compiler Basic Idea Description Programming paradigm MOLEN architecture LimboWARE: basic principles VIRGIL YaRA architecture 4

Main goals: provide a semi-automatic platform for reconfigurable computing. support the entire design process (rather than isolated parts). targets uni-processor architectures with reconfigurable units (the current version exploit a PPC core processor augmented with an FPGA) These require the development of: programming models (MOLEN) a retargetable compilers for reconfigurable platforms. introduction of hardware software co-design speculations. CAD and design space exploration. 9 Programming Paradigm The ISA is extended with 8 instructions 6 instructions are required for controlling the reconfigurable hardware 2 instructions are required for controlling the reconfigurable hardware This mean that to call a FPGA function the compiler must insert code to: SET the function send input parameters to the FPGA call the EXECUTE on the FPGA move output values back from exchange registers 10 5

Code Human Directives Architecture int fact(int n) { if(n<1) return n else return(n*fact(n-1)); } C2C f(.) Retargeted Compiler Binary Code call f(.) HDL SimpleScalar Part III Part II Performance Statistics NO HDL FPGA Part I REVISE 11 The retargetable compiler Generating executable code: Once a function f(.) is identified, the code containing the f(.) logic is eliminated from the source code and replaced by an appropriate FPGA call, together with the appropriate instructions for setting up the FPGA and to start its computation. 12 6

MOLEN Architecture CCU: Custom Configured Unit 13 Presentation status 14 Retargetable Compiler Basic Idea Description Programming paradigm MOLEN architecture LimboWARE: basic principles VIRGIL YaRA architecture 7

LimboWARE: : The idea The basic idea is to postpone the decision of whether executing a task in HW or in SW moving it at run-time This will be done not for every task, because of code memory overhead, but only where is not possible to take a wise choice at design or compile-time 15 LimboWARE: When - Where Compile-time Unbounded number of execution If n is a number known only at run-time. The limbo choice is wiser than the corresponding one done at compile time (without this information) for(i=0; i<n; i++){ function(); } Execution trace dependent choice between HW and µ- code Functionality already in HW (past) Functionality that in this branch will be used many times (constrained future) 16 8

LimboWARE Execution path dependent choice The execution of node 6 depends on the path If the path is 1-3-5-6 the predicate P is TRUE, is executed in HW and the relative µ-code for the SW execution is skipped, by branching after If the path is 2-4-5-6, the predicate P is FALSE, HW_CALL and JMP are not executed and the µ-code for is executed 17 Presentation status 18 Retargetable Compiler Basic Idea Description Programming paradigm MOLEN architecture LimboWARE: basic principles VIRGIL YaRA architecture 9

Provide a workbench VIRGIL: The objectives Integrating and adapting HW/SW codesign methodology to reconfigurable HW scenario Integration of the DRESD reconfigurable HW architecture (YaRA) Introduction of LimboWare mechanisms Development of a retargetable compiler for reconfigurable hardware 19 HW/SW partitioning VIRGIL: Main steps LimboWare code analysis Compile the source code including special LimboWare directives Synthesis and Mapping of the HDL (generated in the first 2 steps) to the Reconfigurable Hardware 20 10

VIRGIL: HLR 21 VIRGIL: The Compiler 22 11

VIRGIL: The architecture YaRA - FPGA Layers 23 VIRGIL: Needs Development of a retargetable compiler for reconfigurable HW integrating LW functionalities. Integrating and tailoring HW/SW codesign methodologies to reconfigurable hw and LW. Identification of LimboWare and critical function detection WHAT in the code will be translated -> metrics Definition of metrics of source code for SW/LW partitioning and development of the relative tools. 24 12